如何根据参数化构建中先前参数的选择设置参数?

时间:2017-11-26 18:46:17

标签: jenkins groovy

我已经配置了一个Jenkins作业,该作业创建了一个CloudFormation堆栈,其中包含创建RDS数据库实例,并从特定环境中该数据库的最新可用快照恢复数据库实例。

有3种不同的环境; Dev Stg Prd ,每个环境都有自己的数据库。

目前,当用户选择使用参数构建时,他要求从选择参数列表中选择其他内容Environment扩展参数列表中的RDS快照ID,该列表使用每个数据库的最新RDS快照ID(通过运行一些Groovy代码)进行填充( Dev ,< em> Stg , Prd )。

基本上,用户需要手动选择Environment名称和RDS快照ID。

为了避免人为错误,例如为 RDS快照ID 选择 Prd Environment Dev ,我&#39 ; d喜欢配置RDSSnapshotId参数(由Groovy脚本填充的参数)由所选的Environment有条件地设置。

意味着如果用户选择 Dev ,则RDSSnapshotId参数将填充该环境中相应的RDS快照ID。

可以吗?

1 个答案:

答案 0 :(得分:0)

  1. 创建一个运行Groovy脚本的新项目,该脚本根据下面的4.在您的CloudFormation作业文件夹中创建一个文件,然后运行您的CloudFormation作业。

  2. 选择 扩展选择参数 →◉多级参数类型

  3. 选择参数类型多级单选

  4. 属性文件<CloudFormation job's folder>/ChoiceParameters.txt

    看起来像:

    Environment→RDS Snapshot ID
    Dev→Dev ID 1
    Dev→Dev ID 2
    Stg→Stg ID 1
    Stg→Stg ID 2
    Prd→Prd ID 1
    Prd→Prd ID 2
    
  5. 价值Environment,RDS Snapshot ID
  6. 至少这是理论。不幸的是,它在我的Jenkins v2.73.3中没有用 扩展选择参数插件v0.76 atm(选择第一级项目后不显示第二级项目),但我知道它适用于以前的版本。

    知道了:参数的名称当然不能包含空格,因为它变成了环境变量。

    <强>更新

    我尝试了Extended Choice Parameter plugin版本0.44(2015年6月2日) Advanced Ex:中提到的示例,看起来很有希望。< / p>