如何覆盖“app-pipeline”buildname的一部分?

时间:2016-06-14 12:52:09

标签: jenkins jenkins-workflow jenkins-pipeline jenkinsfile

我们正在将一组作业(涉及相同的代码库)迁移到管道。分成多个工作岗位的主要原因是实现了并行性和精细化的回报值。管道/ Jenkinsfile方法似乎很合适。有些插件仍然缺失,但总而言之,我们已经走上了良好的轨道。

我们缺少的一件事就是我们以前的良好命名。之前,每个版本都会得到$jobname $buildnumber ($branch)之类的名称,它会给我们app-spec #42 (new-feature)。这导致了jenkins“执行者身份” - 侧栏的良好可见性。

使用管道,我们只获得part of app-pipeline #23,这迫使我们查看构建并确定在任何给定时刻正在运行的内容。

有没有办法覆盖侧边栏中显示的名称?

更新

我主要想要“在该执行程序中运行并行化管道的哪个部分”的答案。

3 个答案:

答案 0 :(得分:7)

在每个并行条目中放置一个stage('name'){}块。阶段的名称将显示在执行程序状态中。因此,无论您希望在状态中看到什么,都要命名您的舞台。

注意,"part of ..."标签仍将显示在构建队列中,但执行程序状态将正确显示。

parallel (
    'newOne': { stage('new-feature'){ //all the things } },
    'second': { stage('second branch'){ //all the things } },
    'third': { stage('third branch'){ //all the things } },
)  

执行人将显示

jobname #nnn (new-feature) 
jobname #nnn (second branch)
jobname #nnn (third branch)

编辑:我运行了一个测试管道,该管道模拟了3轴的多工作作业:OS,JDK Fruit。配置组合的每个分支并行运行并具有命名分支。执行程序状态表示正在运行的每个组合:

enter image description here

答案 1 :(得分:3)

尝试使用:

currentBuild.displayName = "My friendly name"

答案 2 :(得分:2)

使用:

currentBuild.displayName="${JOB_NAME} ${BUILD_NUMBER} (${BRANCH})"

如果它是声明性管道,则需要用脚本{}包裹它:

script
{
    currentBuild.displayName="${JOB_NAME} ${BUILD_NUMBER} (${BRANCH})"
}