有没有办法在詹金斯中使用外部变量作为选择参数?

Is there a way to use external variable as choice parameters in jenkins?

我想从我的 sql Table 中获取数据并将它们用作 Jenkins 中的选择参数

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

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

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

实现这一目标的方法是什么?请帮忙

您可以将扩展选择参数与属性文件结合使用来实现。

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

管道代码

您可以通过将此块放在顶部来在管道中实现相同的效果:

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

有关 type 的所有可能值,请参阅 source code for all possible parameters and PT constants

工作配置

构建参数