Jenkins管道-在从另一个管道触发的构建上编辑构建名称



我有一个Jenkins管道,它运行sereval其他作业。类似的东西

pipeline {
...
stage('Job_1') {
build job: 'job-1', parameters: [
...
string(name: 'BUILD_NAME', value: params.BUILD_NAME),
]
}
stage('Job_2') {
build job: 'job-2', parameters: [
...
string(name: 'BUILD_NAME', value: params.BUILD_NAME),
]
}

以及作业-1、作业-2是matrixJobs。我想使用传递给父管道的参数来设置构建名称。作业1看起来像

matrixJob('job-1') {
...
parameters {
...
stringParam('BUILD_NAME', "#${BUILD_NUMBER} - x", 'Name for the build')
}
wrappers {
...
buildName("${BUILD_NAME}")
}
steps {
...
}

在matrixJob中似乎无法在构建名称中使用参数,我得到错误

ERROR: (job_1.groovy, line 39) No such property: BUILD_NAME for class: javaposse.jobdsl.dsl.helpers.wrapper.WrapperContext

我想问一下,如何更改构建名称以添加例如产品版本。或者,除了将构建名称作为参数传递之外,还有其他方法可以实现这一点。

编辑:

我在父管道中使用脚本解决了这个问题。像这样的

stage('Job_1') {
build job: 'job-1', parameters: [
...
]
}
stage('Job_2') {
build job: 'job-2', parameters: [
...
]
}
stage('Set_names') {
def build = jenkins.model.Jenkins.instance.getItem('job-1').lastBuild
if(build.getResult() != hudson.model.Result.SUCCESS) {
build.displayName = params.BUILD_NAME
}
}

不需要调整儿童工作。

我在父管道中使用脚本解决了这个问题。像这样的

stage('Job_1') {
build job: 'job-1', parameters: [
...
]
}
stage('Job_2') {
build job: 'job-2', parameters: [
...
]
}
stage('Set_names') {
def build = jenkins.model.Jenkins.instance.getItem('job-1').lastBuild
if(build.getResult() != hudson.model.Result.SUCCESS) {
build.displayName = params.BUILD_NAME
}
}

不需要调整儿童工作。

最新更新