And*_*tão 5 jenkins jenkins-pipeline jenkins-declarative-pipeline
我在多分支工作中使用 Jenkins 脚本化管道。
有一个参数应该只在主干中可用,而不是在多分支作业的任何分支中可用。
目前使用脚本化管道,这很容易做到(在共享库中或直接在 Jenkinsfile 上):
def jobParams = [
booleanParam(defaultValue: false, description: 'param1', name: 'param1')
]
if (whateverCondition) {
jobParams.add(booleanParam(defaultValue: false, description: 'param2', name: 'param2'))
}
properties([
parameters(jobParams)
])
Run Code Online (Sandbox Code Playgroud)
我目前正在尝试迁移到 jenkins 声明式语法,但我没有看到创建仅在某些条件下可用的参数的简单方法(我知道我可以忽略它,但我真的不希望它显示它一点)。
到目前为止,唯一的解决方案是将管道也移动到共享库(自Declarative 1.2起可能)。我不喜欢这个解决方案,因为必须复制整个管道,这对于一行来说似乎有点过于极端。
if (whateverCondition) {
pipeline {
agent any
parameters {
booleanParam(defaultValue: false, description: 'param1', name: 'param1')
booleanParam(defaultValue: false, description: 'param2', name: 'param2')
}
(...)
}
} else {
pipeline {
agent any
parameters {
booleanParam(defaultValue: false, description: 'param1', name: 'param1')
}
(...)
}
Run Code Online (Sandbox Code Playgroud)
}
有没有一种方法可以将声明性管道的参数定义的一部分提取到共享库的全局变量或其他东西?
在此先感谢您的帮助!
| 归档时间: |
|
| 查看次数: |
586 次 |
| 最近记录: |