Jenkins流水线插件:设置构建描述

64

我正在尝试用Jenkins流水线插件替换我们当前使用老式的Jenkins作业拼凑在一起的构建流程,并从项目存储库加载一个Jenkinsfile的新作业。

旧的作业中有一项功能是使用描述设置插件将构建描述设置为包含Mercurial哈希值、用户名和当前版本,以便于查找构建。

是否有一种方法可以使用Jenkins流水线插件来复制/模拟这种行为呢?


在声明性流水线中无法完成此操作。请参阅此问答:https://support.cloudbees.com/hc/en-us/articles/220860347-How-to-set-build-name-in-Pipeline-job- - apanzerj
1
相关链接:https://dev59.com/rVcP5IYBdhLWcg3w6-EH。 - Noyo
2
现在我们只需要一个好的方法从console.log中获取正则表达式匹配的字符串... - MarkHu
4个回答

107

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

currentBuild.description = "my new description"

管道脚本中的任何位置。在DZone教程中可以找到更多信息。


14
在声明式流水线中实现这一点,可以使用 script {...} 代码块。详情请参考 https://jenkins.io/doc/book/pipeline/syntax/#script - Morgan Christiansson
4
你知道如何在流水线中设置“工作描述”吗? - Jerald Sabu M
3
这并不一定正确,因为这不是声明式流水线的操作方式。使用脚本标签基本上是转义流水线。 - apanzerj
1
您可以更改 displayName 的名称,链接如下:https://qa.nuxeo.org/jenkins/pipeline-syntax/globals#currentBuild - user9903
有没有办法我可以从sh''' '''中设置这个? - undefined
显示剩余2条评论

41

@jjst的回答描述了如何在“脚本管道”中设置构建说明。在声明性管道中,您可以执行相同的操作,但需要将其放置在 script {} 块内。以下是从Cloudbees文章评论中摘取的完整工作示例:

pipeline {
    agent any
    stages {
        stage("1st stage") {
            steps {
                script {
                    currentBuild.displayName = "My custom build name"
                    currentBuild.description = "My custom build description"
                }
            }
        }
    }
}

6

当jjst写他的答案时,可能还不是这样,但现在随着最新的jenkins和插件,你可以在主管道顶部设置此选项。这意味着您不必嵌入脚本设置并具有特殊步骤等。

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

或者

currentBuild.description = """
blah
blah
blah
"""
pipeline {

这对于 currentBuild.displayName 也适用吗?我们正在使用脚本流水线,因此这不适用于我们,我无法测试它。我想其他人也想知道。 - willkil
请问您在发布帖子时所说的“最新Jenkins”版本是指哪个版本?我们因某些原因而停留在2.138.3版本。 - Max Cascone
我当时使用的是他们Ubuntu仓库中的当前版本,因为我们倾向于自动升级和回滚(小团队分散),如果发现问题,我会检查发布日期。 - krad
当在管道之外设置描述/显示名称时,甚至可以使用参数和全局环境变量。但是对于在管道“环境”块中定义的变量似乎不起作用。 - kapex

4

我不确定它有多久的历史,但是最近我发现了buildDescription插件,它提供了一种声明性的方法来设置构建描述。安装后,使用它非常简单:

steps {
  buildDescription 'my build'
}

控制台将显示一个步骤输出: 新的运行描述为 'my build'

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