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

时间:2018-07-17 15:19:37

标签: 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)
])

我目前正在尝试迁移到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')
      }
    (...)
    }

}

有没有一种方法可以将声明性管道的部分参数定义提取到共享库的全局变量或其他内容中?

在此先感谢您的帮助!

0 个答案:

没有答案