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