55

Jenkinsfile我正在尝试用一个使用 Jenkins 管道插件并从项目存储库加载的新工作替换我们当前的构建管道,该管道目前使用老式 Jenkins 作业一起破解。

遗留工作所做的一件事是使用Description setter 插件将构建描述设置为包括 Mercurial 哈希、用户名和当前版本,以便轻松找到构建。

有没有办法使用 Jenkins 管道插件复制/模拟这种行为?

4

4 回答 4

94

刚刚想通了。管道作业公开了一个currentBuild具有可写属性的全局变量。可以通过以下方式设置描述:

currentBuild.description = "my new description"

管道脚本中的任何位置。此DZone 教程中的更多信息。

于 2016-04-08T13:57:40.740 回答
33

@jjst 的答案描述了如何在“脚本化管道”中设置构建描述。在声明式管道中,您可以执行相同的操作,但需要将其放置在script { }块中。这是一个完整的工作示例,来自对 Cloudbees 文章的评论

pipeline {
    agent any
    stages {
        stage("1st stage") {
            steps {
                script {
                    currentBuild.displayName = "My custom build name"
                    currentBuild.description = "My custom build description"
                }
            }
        }
    }
}
于 2018-11-22T18:03:52.193 回答
6

当 jjst 写他的答案时可能不是这种情况,但现在使用最新的 jenkins 和插件,您可以在顶部的主管道之外设置它。这意味着您不必嵌入脚本设置并有特殊的步骤等,例如

currentBuild.description = "my new description"
pipeline {...

或者

currentBuild.description = """
blah
blah
blah
"""
pipeline {
于 2018-12-06T10:54:45.340 回答
3

我不确定它有多旧,但我最近发现了一个buildDescription插件,它为您提供了一种设置构建描述的声明性方法。安装后,它很简单:

steps {
  buildDescription 'my build'
}

控制台将显示一个步骤输出: New run description is 'my build'

于 2020-06-16T04:36:57.480 回答