【问题标题】:Jenkins pipeline - edit build name on a build triggered from another pipelineJenkins 管道 - 在从另一个管道触发的构建上编辑构建名称
【发布时间】: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


【解决方案1】:

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

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
    }
}

不需要调整童工。

【讨论】:

    【解决方案2】:

    这将适用于从管道步骤触发后立即执行的作业。但是,使用“quietPeriod”并等待特定时间段的工作怎么样。同时,如果在实际作业执行之前,在外部(即在管道作业之外或可以在目标作业中手动/计划触发)同一作业发生任何其他构建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-24
      • 2021-05-02
      • 1970-01-01
      • 2017-11-25
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      相关资源
      最近更新 更多