小编And*_*tão的帖子

jenkins 多分支声明性管道中每个分支的不同参数

我在多分支工作中使用 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)

jenkins jenkins-pipeline jenkins-declarative-pipeline

5
推荐指数
0
解决办法
586
查看次数