Итак, я запускаю свой сценарий конвейера с этого фрагмента кода:
node {
if (env.JOB_NAME != 'Company/project/develop' && env.JOB_NAME != 'Company/project/master'){
def jobName = env.JOB_NAME
def job = Jenkins.instance.getItemByFullName(jobName)
for (build in job.builds) {
if (build.isBuilding() && build != job.builds.first()) {
println '*' * 30
println 'All previous builds for this job have been aborted!'
println '*' * 30
build.doStop()
}}
}
}
И он отлично работает. Он останавливает все предыдущие сборки для того же имени задания. Смысл этого в том, чтобы оптимизировать Jenkins, когда разработчики вводят слишком много кода, но последняя версия pu sh является только важной. Ветви master и development исключены из этого правила.
Я хотел бы немного расширить это, добавив причину прерывания. Я хотел бы напечатать в остановленной сборке, например: «Это задание было остановлено, потому что оно устарело ...»
Я пробовал много вещей, размещенных в stackoverflow, но мне это не удалось.
Спасибо