我有一个常规脚本,对许多作业来说都是通用的——它们都将包含一个 Active Choices Reactive Parameter。我不想将同一个脚本重复数十次,而是将其放入(库 | ??) 一次,并在每个作业中引用它。
该脚本适用于我粘贴它的任何作业。只需要知道是否可以将它放到一个地方并在所有作业中共享。更新一次,更新所有作业。
import jenkins.model.Jenkins;
ArrayList<String> res = new ArrayList<String>();
def requiredLabels = [new hudson.model.labels.LabelAtom ("Product")];
requiredLabels.add(new hudson.model.labels.LabelAtom(ClientName));
Jenkins.instance.computers.each {
if (it.assignedLabels.containsAll(requiredLabels)) {
res.add(it.displayName);
}
}
return res;
最佳答案
注意:只有当您有权访问您的 Jenkins 盒子时,这才有效。我还没有尝试通过添加到 jenkins 主页的路径来做到这一点
你可以使用这个:
- 将您的所有功能制作成常规文件。例如将调用它:activeChoiceParams.groovy
- 通过以下方式将该文件转换为 jar:
jar cvf <jar filename> <groovy file>
.例如:jar cvf activeChoiceParams.jar activeChoiceParams.groovy
- 将你的 jar 文件移动到/packages/lib/ext
- 重启 Jenkins
- 在您的主动选择中使用 groovy 脚本(例如>:
import activeChoiceParams
return <function name>()
所有函数都必须返回一个列表或映射
关于jenkins - 事件选择参数中的通用 Groovy 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57898763/