Jenkins:如果在master上失败,运行stage



我有一个Jenkins设置,其中一些额外的阶段(例如,消毒程序)仅在主分支上执行。

之所以这样做,是因为在这些阶段上重新构建和重新运行单元测试需要很长时间,我们无法在所有的特性分支上执行它。

然而,有一些开发人员忽略了这些失败。所以理想情况下,如果这些阶段在主节点上失败,我希望它们在所有分支上执行。这样就会有一个强制功能来保持主分支的绿色,而不会给服务器带来太多额外的负载,也不会在执行pr时造成太长的延迟。

这样的事情可能吗?

通过一些探查,我发现可以使用groovy API检查特定构建的失败。

def isMasterFailing = jenkins.model.Jenkins.instance.getItem("MyProject").getItem("master").lastCompletedBuild.result == Result.FAILURE

通过使用lastCompletedBuild,你不会得到任何可能还没有结果的运行构建。和结果比较。失败你不会得到结果,例如超时或终止构建,这可能意味着存在系统问题,也可能不意味着存在系统问题。其他结果是NOT_BUILT、SUCCESS和不稳定。也许你想在这里检查其他东西。

现在你可以使用isMasterFailing在你的特性分支上运行可选的阶段(例如消毒器)。

理想情况下,我仍然想知道构建失败的阶段,因为那时我可以决定这是否是一个阶段,没有完成我的功能分支,但这将做现在。

相关内容

最新更新