如何在Jenkins Job DSL中设置内部名称?

时间:2018-11-23 18:15:17

标签: jenkins jenkins-job-dsl

根据https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.helpers.wrapper.MavenWrapperContext.buildName

中的文档

以下代码应更新Jenkins作业中“构建历史记录”中的构建名称:

// 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 Script更改它,但是在这项特定工作中我不需要它。我在工作中使用的只是步骤

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

我想强调的是,我正在寻找一种本机的Jenkins Job DSL解决方案,而不是一种Jenkins Pipeline Script解决方案,而不是一种操纵环境变量的方法。

3 个答案:

答案 0 :(得分:3)

我今天设法解决了我的问题。 该脚本不起作用,因为它需要在Jenkins中安装构建名称设置插件。安装后,它可以完美运行。 不幸的是,默认情况下jobdsl处理器不会通知缺少的插件。 https://issues.jenkins-ci.org/browse/JENKINS-37417

中所述的参数启用

答案 1 :(得分:1)

这是更改构建的显示名称和描述的最小管道。恕我直言,这很简单。

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的用户界面中显示以下内容:Changed display name is shown in build history; Stage view shows the display name

答案 2 :(得分:1)

groovyPostBuild 步骤中的

setBuildName("your_build_name")也可以解决问题。 需要Groovy Postbuild插件。