我一直在研究一个Jenkins Pipeline插件,该插件能够为特定阶段定义绝对时间,并在超过该时间时执行操作,但没有成功。
此外,我正在尝试在groovy中实现此功能,以便将其附加到Pipeline脚本中。我对try-catch块中的每个阶段都使用超时功能。然而,我想提出一个例外,不仅是在超时的情况下,而且在计算当前阶段的持续时间与以前版本的阶段持续时间之间的差异时,它超过了特定的百分比。我想通过使用Jenkins Pipeline全局变量来访问特定先前构建的阶段及其持续时间。到目前为止,我还找不到一种方法来访问一个特定构建的阶段及其持续时间。
如有任何帮助,将不胜感激
您可以在每个构建中归档您的stage运行时数据:archive 'my-runtime.data'
。然后利用CopyArtifacts
插件将这些运行时数据工件复制到您当前的工作空间:
step([$class: 'CopyArtifact'
, projectName: JOB_NAME
, selector: [$class: 'StatusBuildSelector']
, filter: 'my-runtime.data'])
只需解析该文件(可能是csv文件(,并利用数据执行操作。
一个长期的解决方案是创建一个插件,为有类似问题的人处理这个问题,但同时你可以利用上面的想法。