【发布时间】:2019-05-13 14:14:16
【问题描述】:
我在 jenkins 上有一个构建/部署作业,用户可以使用多选参数选择多个要部署的项目。我使用 groovy 脚本从 db 表中动态检索这些值。
问题是一些变量应该被链接。意义;当用户选择项目 X 时,项目 A 和项目 B 也应该被选中。
有没有办法在詹金斯多选上触发选择事件?还是我应该使用其他东西?
谢谢。
【问题讨论】:
标签: jenkins jenkins-pipeline jenkins-plugins
我在 jenkins 上有一个构建/部署作业,用户可以使用多选参数选择多个要部署的项目。我使用 groovy 脚本从 db 表中动态检索这些值。
问题是一些变量应该被链接。意义;当用户选择项目 X 时,项目 A 和项目 B 也应该被选中。
有没有办法在詹金斯多选上触发选择事件?还是我应该使用其他东西?
谢谢。
【问题讨论】:
标签: jenkins jenkins-pipeline jenkins-plugins
花了一些时间后,我找到了一种使用 Active Choices Plugin 的方法
1- 我保留了我最初的 extended choice parameter 让我们将其命名为 COMPONENTLIST
2- 然后我创建了另一个参数 Active Choices Reactive Reference Parameter 让我们将其命名为 COMPONENT_IDS
2a- 我在 COMPONENT_IDS 中将 COMPONENTLIST 添加为 referenced parameter。并将Choice Type 设置为Formatted HTML 并选择Omit value field
2b- 我使用以下 groovy 脚本来收集初始选择并对其进行修改,并按步骤 2c 中的方式返回
def output = COMPONENTLIST.split(',').collect{it as int}
2c- 棘手的部分在这里!传递参数以构建阶段的方式不同。以下行帮助我通过 COMPONENT_IDS 进行构建。
output = output.join(",")
return "<b>${output}</b><input type=\"hidden\" name=\"value\" value=\"${output}\" />"
【讨论】: