【发布时间】:2022-08-24 12:11:14
【问题描述】:
我有一个 Jenkins 管道,它运行其他几个工作。就像是
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),
]
}
而job-1,job-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
}
}
不需要调整童工。
-
如果您找到了解决方案,请将其作为答案发布,而不是编辑问题。
标签: jenkins-pipeline jenkins-job-dsl