Jenkinsfile-如何为所有阶段传递参数

为了解释这个问题,请考虑我有2个詹金斯工作。


职位1:PARAM_TEST1

它接受称为“ MYPARAM”的参数化值


职位2:PARAM_TEST2

它还接受称为“ MYPARAM”的参数化值


有时我需要按顺序运行这两个作业-因此我创建了一个单独的管道作业,如下所示。它工作正常。

它还接受名为“ MYPARAM”的参数化值,以将其简单地传递到构建作业步骤。

pipeline {

agent any

stages {

stage("PARAM 1") {

steps {

build job: 'PARAM_TEST1', parameters: [string(name: 'MYPARAM', value: "${params.MYPARAM}")]

}

}

stage("PARAM 2") {

steps {

build job: 'PARAM_TEST2', parameters: [string(name: 'MYPARAM', value: "${params.MYPARAM}")]

}

}

}

}


这个例子很简单。其实我有20个工作。我不想parameters: [string(name: 'MYPARAM', value:

"${params.MYPARAM}")]在每个阶段都重复。

有没有办法在一个地方为所有构建作业步骤设置参数?

回答:

您可以做的是将通用参数放在管道级别上,并在阶段中添加特定的参数

pipeline {

agent any

parameters {

string(name: 'PARAM1', description: 'Param 1?')

string(name: 'PARAM2', description: 'Param 2?')

}

stages {

stage('Example') {

steps {

echo "${params}"

script {

def myparams = params + string(name: 'MYPARAM', value: "${params.MYPARAM}")

build job: 'downstream-pipeline-with-params', parameters: myparams

}

}

}

}

}

以上是 Jenkinsfile-如何为所有阶段传递参数 的全部内容, 来源链接: utcz.com/qa/430027.html

回到顶部