Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 我怎样才能覆盖“引用”;应用程序管道的一部分“;建筑名?_Jenkins_Jenkins Workflow_Jenkins Pipeline_Jenkinsfile - Fatal编程技术网

Jenkins 我怎样才能覆盖“引用”;应用程序管道的一部分“;建筑名?

Jenkins 我怎样才能覆盖“引用”;应用程序管道的一部分“;建筑名?,jenkins,jenkins-workflow,jenkins-pipeline,jenkinsfile,Jenkins,Jenkins Workflow,Jenkins Pipeline,Jenkinsfile,我们正在将一组作业(涉及相同的代码库)迁移到管道。拆分为多个作业的主要原因是实现了并行性和细粒度返回值。pipeline/Jenkinsfile方法似乎非常适合。一些插件仍然缺失,但总的来说,我们的工作进展顺利 我们缺少的一件事是我们以前的好名字。以前,每个构建都会得到一个像$jobname$buildnumber($branch)这样的名称,这给了我们appspec\42(新特性)。这将在jenkins的“执行者状态”侧栏中显示良好的可见性 通过管道,我们只得到应用程序管道23的一部分,这迫使

我们正在将一组作业(涉及相同的代码库)迁移到管道。拆分为多个作业的主要原因是实现了并行性和细粒度返回值。pipeline/Jenkinsfile方法似乎非常适合。一些插件仍然缺失,但总的来说,我们的工作进展顺利

我们缺少的一件事是我们以前的好名字。以前,每个构建都会得到一个像
$jobname$buildnumber($branch)
这样的名称,这给了我们
appspec\42(新特性)
。这将在jenkins的“执行者状态”侧栏中显示良好的可见性

通过管道,我们只得到应用程序管道23的一部分,这迫使我们查看构建并确定在任何给定时刻运行的内容

是否有方法覆盖侧边栏中显示的名称

更新

我主要想知道“并行化管道的哪一部分在执行器中运行”的答案

尝试使用:

currentBuild.displayName = "My friendly name"
在每个并行条目中放置一个
stage('name'){}
块。阶段的名称将显示在执行者状态中。因此,无论你想在状态中看到什么,都可以命名你的阶段

注意,
“部分…”
标签仍将显示在生成队列中,但执行器状态将正确显示

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。配置组合的每个分支并行运行,并有一个命名分支。执行器状态指示每个正在运行的组合:

使用:

currentBuild.displayName="${JOB_NAME} ${BUILD_NUMBER} (${BRANCH})"
如果它是一个声明性管道,则需要使用脚本{}对其进行包装:

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

我尝试过这个,它给了我“应用程序管道的一部分#23(新功能)”。虽然这增加了一些信息,但我仍然不知道它是在运行规范、静态分析还是集成测试。我们还进行了大量并行化,以将构建时间分散到尽可能多的执行器上。描述符设置器插件,但对我来说,这会在完成后更新执行器。有解决方案吗?遗憾的是,没有。目前,我们将单独的作业迁移到一个管道只是因为这一点(以及其他非技术方面)而被搁置.最近的Jenkins Pipeline插件版本在侧栏中显示当前阶段名称。您是否将您的阶段包含在
stage(“阶段名称”){}
块中?并行块也是如此,只需给它们起一个有意义的名字。它是
stage
还是
branch
?我已经使用了
stage('name')
,它不会改变执行者状态。当我尝试分支时,我得到了
java.lang.NoSuchMethodError:steps
.Oops中没有找到这样的DSL方法“分支”。阶段令人困惑的术语。你用的是什么版本的詹金斯?我在2.83的一个测试实例上进行了测试,效果非常好。我刚刚添加了一个测试的屏幕截图。看起来更好,我真的在寻找一种方法,从构建脚本更改“multi-configPipeline”部分,这将是理想的。我正在用管道插件v2.4Hmmm运行Jenkins v2.32.1。。。是的,将显示更改为不在executor中显示作业本身的名称可能需要某种插件。如果您可以临时更改作业的名称(即通过groovy),它可能会同时在每个执行器上显示相同的更改。这会更改生成名称,而不是作业名称。作业名称是指示文本的来源。此外,在并行阶段反复进行这种更改只会使问题变得更糟。现在,您将看到加载UI时设置的任何名称,而不是处于executor状态的内部版本号,但将为所有执行者显示相同的内部版本名称。更改作业名称将导致“内部版本”和“工作空间”文件夹中的文件夹名称发生更改。这不能也不应该在构建期间完成!同意。您不能更改作业名称。您可能会构建一个插件,该插件在executor中显示除作业名称以外的内容。但是更改build displayName并不能解决这个问题,而且可能会使它更加混乱。我不明白为什么将作业名称和分支名称添加到build number(已经存在)中会更加混乱,因为在最初的文章中,它们并行地操作多个分支。executor中的构建名称将仅显示加载web UI时设置的内容。它将为当前运行的所有线程显示它。因此,您可能同时运行分支A、B、C和D,但如果在加载显示执行器状态的web屏幕之前,C是最后一个设置显示名称的节点,则所有执行器节点都将显示C,即使它们正在运行A、B和C。