В конвейере Jenkins SCM отсутствует условие выполнения, аналогичное catch/finally
, которое будет вызываться в случае сбоя загрузки Jenkinsfile
, и я не думаю, что оно будет в будущем.
Однакоесть этот global-post-script , который запускает скрипт groovy после каждой сборки каждого задания в Jenkins.Вы должны поместить этот сценарий в каталог $JENKINS_HOME/global-post-script/
.
С его помощью вы можете отправлять уведомления или электронную почту администраторам на основании проекта, который провалился, и / или причины / исключения неудачи.
Пример кода, который вы можете поместить в скрипт
if ("$BUILD_RESULT" != 'SUCCESS') {
def job = hudson.model.Hudson.instance.getItem("$JOB_NAME")
def build = job.getBuild("$BUILD_NUMBER")
def exceptionsToHandle = ["java.io.FileNotFoundException","hudson.plugins.git.GitException"]
def foundExection = build
.getLog()
.split('\n')
.toList()
.stream()
.filter{ line ->
!line.trim().isEmpty() && !exceptionsToHandle.stream().filter{ex -> line.contains(ex)}.collect().isEmpty()
}
.collect()
.size() > 0;
println "do something with '$foundExection'"
}