У меня есть декларативный конвейер, так как я хотел бы определить глобальный post
-> failure
элемент, который выполняется только в определенных ветвях. Он должен быть выполнен после всех этапов, чтобы зафиксировать любой сбой в конвейере. Я хочу использовать импортированные методы (например, из других скриптов groovy), то есть вместо команды echo
, показанной в примере.
Моя цель - создать уведомление, которое происходит только в определенном наборе ветвей итолько в случае сбоя какой-либо стадии в конвейере.
pipeline {
agent any
stages {
stage('Compile') {
steps {
...
}
}
/* ... other stages ... */
}
post {
success {
echo 'whole pipeline successful'
}
failure {
echo 'pipeline failed, at least one step failed'
}
}
}
post
должен содержать шаг , как и steps
, однако шаги - это команды afaik (ищетсяодин час и не нашел определения) и это означает, что я не могу использовать when
или вложенные шаги (это возможно - я искал также часы).
Я не могу подойти к этомус линтером, потому что все они ограничены проверками синтаксиса и не проверяют логику конвейера. Я пробовал URL-адрес /pipeline-model-converter/validate
, который является болезненным, потому что его нельзя использовать изнутри веб-интерфейса, а в почтальоне вам нужно подходить к аутентификации OAuth методом проб и ошибок. Нет даже изображения Docker для проверки.