Jenkins-Pipline获得失败的构建数量

时间:2017-10-26 21:19:41

标签: continuous-integration jenkins-pipeline

我正在尝试建立一个使用slack通知的通知系统。但是当它变得更糟时,它会进入多个频道。为此,我需要看到的不仅仅是您之前可以执行的构建:

currentBuild.getPreviousBuild().result

但更多的是:

currentBuild.getAmountOfConsecutiveFaildAttemtpts()

因此,如果我达到某个阈值,我可以推送到多个频道。任何想法都会很好。

1 个答案:

答案 0 :(得分:0)

currentBuild.previousBuild会返回RunWrapper,这与currentBuild完全相同。这意味着您可以使用getPreviousBuild()getNextBuild()遍历任意方向的构建。

这是一个粗略,快速的例子。您将不得不考虑并行构建如何影响您的结果。如果要在多个管道中重复使用它,可以将其移动到Shared Library

int failures = 0
def examinedBuild = currentBuild.previousBuild
while(examinedBuild != null) {
  echo "Build Number ${examinedBuild.number} -> ${examinedBuild.result}" 
  if (examinedBuild.result == 'FAILURE') {
    failures = failures + 1
  }
  examinedBuild = examinedBuild.previousBuild
}