将进度返回到Jenkins管道sh步骤

时间:2018-12-26 09:06:31

标签: jenkins-pipeline

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

Jenkins绘制了一个漂亮的GUI,显示了每个阶段的总体进度条和进度条。根据我的观察,它会根据先前启动时估算的平均运行时间来更新进度条。

这里是示例: enter image description here

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

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

但是,这一进展与詹金斯的估计不符。

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

1 个答案:

答案 0 :(得分:-1)

You could solve your issue by rewriting the long-running step in Groovy and adding printouts in between shorter steps.

Instead of e.g.

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

you could have e.g.

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