首页 > 解决方案 > 将进度返回到 Jenkins 管道 sh 步骤

问题描述

我正在使用 Pipeline 插件开发 Jenkins 工作。

Jenkins 绘制了一个漂亮的 GUI,显示了每个阶段的整体进度条和进度条。根据我的观察,它会根据之前发布的平均运行时间来更新进度条。

这是示例: 在此处输入图像描述

我工作的最后一步(运行)很长。此步骤运行一些可以估计其进度的实用程序,并且当前将其打印到标准输出。

因此,我可以从该步骤打开日志并查看实际进度。

然而,这一进展与詹金斯的估计不符。

有什么方法可以将实用程序对进度的估计传递给 Jenkins,以便它可以相应地更新进度条?

标签: jenkins-pipeline

解决方案


您可以通过在 Groovy 中重写长时间运行的步骤并在较短的步骤之间添加打印输出来解决您的问题。

而不是例如

stage('very_long_stage') { steps { script { println "Running very long stage" sh "make all" } } }

你可以有,例如

stage('very_long_stage') { steps { script { println "Running long step 1" sh "make one" println "Running long step 2" sh "make two" // etc. } } }


推荐阅读