【问题标题】:Is there a way to use external variable as choice parameters in jenkins?有没有办法在詹金斯中使用外部变量作为选择参数?
【发布时间】:2019-10-31 07:26:37
【问题描述】:
我想从我的 sql 表中获取数据并将它们用作 Jenkins 中的选择参数
+----+
| ID |
+----+
| 11 |
| 23 |
| 45 |
| 72 |
| 5 |
| 16 |
| 71 |
| 18 |
+----+
我想在 Jenkins 中使用这些 ID 作为选择参数,以便使用这些 ID 之一进行构建,即使用这些 ID 号作为参数构建参数
我只是想在构建之前将带有这些 ID 号的下拉菜单作为选项,并且所选选项可以用作构建步骤中脚本的参数。
实现这一目标的方法是什么?请帮忙
【问题讨论】:
标签:
jenkins
deployment
jenkins-pipeline
jenkins-cli
automated-deploy
【解决方案1】:
您可以将扩展选择参数与属性文件结合使用。
- 创建内容为
key=value1,value2,value3,... 的属性文件,例如key=11,23,45,72,5,16,71,18。
- 将此文件放在您的 Jenkins 主文件系统中,例如,
/var/lib/jenkins/userContent/build.properties。您需要编写自动化脚本/创建另一个作业以定期更新此文件。
- 在您的作业配置中,选择This project is parameterized > Extended Choice Parameter。
- 输入参数的名称,例如
TABLE_VALUE。
- 选择基本参数类型 > 单选。
- 输入用于分隔属性文件中的值的分隔符。在这种情况下,逗号
,。
- 选择Property File并输入Jenkins master中属性文件的路径-
/var/lib/jenkins/userContent/build.properties。
- 输入
key 作为属性键。
- 保存作业配置。
- 使用管道中的变量
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,类型的所有可能值请参见PT constants。
工作配置
构建参数