有没有一种方法可以在詹金斯中使用外部变量作为选择参数?

时间:2019-10-31 07:26:37

标签: jenkins deployment jenkins-pipeline jenkins-cli automated-deploy

我想从sql表中获取数据并将其用作Jenkins中的选择参数

+----+
| ID |
+----+
| 11 |
| 23 |
| 45 |
| 72 |
|  5 |
| 16 |
| 71 |
| 18 |
+----+

我想在Jenkins中使用这些ID作为选择参数,以便使用其中一个ID进行构建,即使用这些ID号作为参数的参数进行构建

在构建之前,我只是想将这些ID号下拉列表作为选择,并且可以将选择的选择用作构建步骤中脚本的参数。

实现这一目标的方式是什么?请帮助

1 个答案:

答案 0 :(得分:0)

您可以结合使用扩展选择参数和属性文件来实现此目的。

  1. 创建内容为key=value1,value2,value3,...,例如key=11,23,45,72,5,16,71,18的属性文件。
  2. 将此文件放置在您的Jenkins主文件系统中,例如/var/lib/jenkins/userContent/build.properties。您需要编写自动化脚本/创建另一个作业以定期更新此文件。
  3. 在作业配置中,选择此项目已参数化> 扩展选择参数
  4. 输入参数名称,例如TABLE_VALUE
  5. 选择基本参数类型> 单选
  6. 输入用于分隔属性文件中值的定界符。在这种情况下,请使用逗号,
  7. 选择属性文件,然后在Jenkins主文件-/var/lib/jenkins/userContent/build.properties中输入属性文件的路径。
  8. 输入key作为属性键
  9. 保存作业配置。
  10. 使用管道中的变量TABLE_VALUE访问所选参数的值。

管道代码

您可以通过以下方式在管道中实现相同的目标:

properties([
    parameters([
        extendedChoice(
            name: 'TABLE_VALUE', 
            description: '', 
            type: 'PT_SINGLE_SELECT',
            multiSelectDelimiter: ',', 
            propertyFile: '/var/lib/jenkins/userContent/build.properties', 
            propertyKey: 'key',
            quoteValue: false
        )
    ])
])

有关所有可能的参数,请参见source code,有关 type 的所有可能值,请参见PT constants

作业配置

enter image description here

构建参数

enter image description here