Jenkins管道插件:设置构建描述

jjs*_*jst 41 jenkins jenkins-workflow jenkins-pipeline

我正在尝试用一个使用Jenkins管道插件的新作业替换目前使用旧式Jenkins作业攻击的当前构建管道,并Jenkinsfile从项目存储库中加载a .

遗留作业所做的一件事是使用Description setter插件将构建描述设置为包含Mercurial哈希,用户名和当前版本,以便易于查找构建.

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

jjs*_*jst 73

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

currentBuild.description = "my new description"
Run Code Online (Sandbox Code Playgroud)

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

  • 要在声明性管道中执行此操作,请使用脚本{...}块https://jenkins.io/doc/book/pipeline/syntax/#script (7认同)
  • @jjst 你知道如何在管道中设置“工作描述”吗? (3认同)
  • 这不一定正确,因为这不是在声明性管道中执行此操作的方法。使用脚本标签基本上是逃避管道。 (3认同)

t0r*_*r0X 13

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

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


kra*_*rad 6

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

currentBuild.description = "my new description"
pipeline {...
Run Code Online (Sandbox Code Playgroud)

或者

currentBuild.description = """
blah
blah
blah
"""
pipeline {
Run Code Online (Sandbox Code Playgroud)