Jenkinsfile
我正在尝试用一个使用 Jenkins 管道插件并从项目存储库加载的新工作替换我们当前的构建管道,该管道目前使用老式 Jenkins 作业一起破解。
遗留工作所做的一件事是使用Description setter 插件将构建描述设置为包括 Mercurial 哈希、用户名和当前版本,以便轻松找到构建。
有没有办法使用 Jenkins 管道插件复制/模拟这种行为?
Jenkinsfile
我正在尝试用一个使用 Jenkins 管道插件并从项目存储库加载的新工作替换我们当前的构建管道,该管道目前使用老式 Jenkins 作业一起破解。
遗留工作所做的一件事是使用Description setter 插件将构建描述设置为包括 Mercurial 哈希、用户名和当前版本,以便轻松找到构建。
有没有办法使用 Jenkins 管道插件复制/模拟这种行为?
刚刚想通了。管道作业公开了一个currentBuild
具有可写属性的全局变量。可以通过以下方式设置描述:
currentBuild.description = "my new description"
管道脚本中的任何位置。此DZone 教程中的更多信息。
@jjst 的答案描述了如何在“脚本化管道”中设置构建描述。在声明式管道中,您可以执行相同的操作,但需要将其放置在script { }
块中。这是一个完整的工作示例,来自对 Cloudbees 文章的评论:
pipeline {
agent any
stages {
stage("1st stage") {
steps {
script {
currentBuild.displayName = "My custom build name"
currentBuild.description = "My custom build description"
}
}
}
}
}
当 jjst 写他的答案时可能不是这种情况,但现在使用最新的 jenkins 和插件,您可以在顶部的主管道之外设置它。这意味着您不必嵌入脚本设置并有特殊的步骤等,例如
currentBuild.description = "my new description"
pipeline {...
或者
currentBuild.description = """
blah
blah
blah
"""
pipeline {
我不确定它有多旧,但我最近发现了一个buildDescription
插件,它为您提供了一种设置构建描述的声明性方法。安装后,它很简单:
steps {
buildDescription 'my build'
}
控制台将显示一个步骤输出:
New run description is 'my build'