Я хочу определить несколько этапов в синтаксисе декларативного конвейера Jenkins, который может провалиться после любого из них. Я не могу найти какие-либо существующие вопросы, которые являются истинными дубликатами, потому что все они предполагают или разрешают скриптовый синтаксис.
pipeline {
agent any
stages {
stage('stage 1') {
steps {
echo "I need to run every time"
}
}
stage('stage 2') {
steps {
echo "I need to run every time, even if stage 1 fails"
}
}
stage('stage 3') {
steps {
echo "Bonus points if the solution is robust enough to allow me to continue *or* be halted based on previous stage status"
}
}
}
}
Чтобы уточнить, я не ищу, как это сделать в сценарии синтаксиса. Я пытаюсь понять, действительно ли этот вид управления потоком поддерживается и формализован в декларативном синтаксисе. С этой целью я постараюсь точно определить, что я ищу:
Обязательно
- Нет попытки/улова. Я не хочу выходить в сценарий или "обматывать" свой декларативный конвейер в другой разделяемой библиотеке или сценарии.
- Нет
post step
shenanigans. Я хочу истинные несколько этапов, а не один этап с шагомpost always
, который содержит всю мою другую логику.
Дополнительно
- Неудачная стадия должна быть признана неудачной; Я не хочу, чтобы неудачный этап отображался как зеленый, потому что он был "пропущен" или "продолжен".
- Строка с любой неудачной стадией должна быть отмечена как красный (или желтый, или ничего, что не зеленое).
Связанный, но не достаточный
- Как продолжить этап в проекте jenkins, даже если сборка завершится неудачно
- Определить неудачный этап в декларативном трубопроводе Дженкинса
- Продолжить трубопровод Дженкинса после неудачной стадии
- Покажите стадию трубопровода Дженкинса как потерпевшую неудачу без сбоя всей работы
- Дженкинс продолжает работу на неудавшейся сцене