如何在Jenkins Job DSL中设置构建名称?

3
根据https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.helpers.wrapper.MavenWrapperContext.buildName中的文档,以下代码可更新Jenkins作业中Build History中的构建名称:
// define the build name based on the build number and an environment variable
job('example') {
  wrappers {
    buildName('#${BUILD_NUMBER} on ${ENV,var="BRANCH"}')
  }
}

很不幸,它并没有实现。

有没有办法从Jenkins Job DSL脚本中更改构建名称? 我知道我可以从Jenkins Pipeline脚本中更改它,但在这个特定的任务中我不需要。我在任务中使用的只有步骤

steps {
  shell("docker cp ...")
  shell("git clone ...")
  ...
}

我想强调我正在寻找一种本地化的Jenkins Job DSL方案,而不是Jenkins Pipeline脚本或任何其他hacky方式(如环境变量的操作)。

可能是如何自定义Jenkins构建名称?的重复问题。 - Michael
你所指向的答案与Jenkins Pipeline脚本相关,或者有一些不正规的方法来更改构建名称。我希望能够找到一个由Jenkins Job DSL脚本本身支持的解决方案。 - firen
3个回答

3

我今天解决了我的问题。 这个脚本没有起作用,因为它需要在Jenkins中安装build-name-setter插件。当我安装它后,它就完美地工作了。 不幸的是,默认情况下jobdsl处理器不会通知缺少的插件。启用该参数的方法在此处描述:https://issues.jenkins-ci.org/browse/JENKINS-37417


2
这是一个最简单的流水线,可以更改构建的显示名称和描述。在我看来,这非常直接明了。
pipeline {

    agent any

    environment {
        VERSION = "1.2.3-SNAPSHOT"
    }

    stages {
        stage("set build name") {
            steps {
                script {
                    currentBuild.displayName = "v${env.VERSION}"
                    currentBuild.description = "#${BUILD_NUMBER} (v${env.VERSION})"
                }
            }
        }
    }
}

它会在Jenkins的UI中呈现如下形式:更改后的显示名称显示在构建历史记录中;阶段视图显示显示名称

https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.jobs.FreeStyleJob.steps 脚本似乎不是 steps 元素的一部分。 - firen
@firen,你链接到了一个工作DSL文档页面。我的示例是在流水线DSL中,script是一个有效的步骤(请参见https://jenkins.io/doc/pipeline/steps/pipeline-model-definition/#-script-%20run%20arbitrary%20pipeline%20script)。 - Michael

1
groovyPostBuild步骤中,setBuildName("your_build_name")可能也能解决问题。 需要使用Groovy Postbuild插件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接