Я пытаюсь настроить следующие функции для работы с синтаксисом декларативного конвейера Jenkins:
- Условное выполнение определенных этапов только в
master
ветви input
запросить подтверждение пользователя для развертывания в промежуточной среде - Во время ожидания подтверждения он не блокирует исполнителя
Вот что я закончил:
pipeline {
agent none
stages {
stage('1. Compile') {
agent any
steps {
echo 'compile'
}
}
stage('2. Build & push Docker image') {
agent any
when {
branch 'master'
}
steps {
echo "build & push docker image"
}
}
stage('3. Deploy to stage') {
when {
branch 'master'
}
input {
message "Deploy to stage?"
ok "Deploy"
}
agent any
steps {
echo 'Deploy to stage'
}
}
}
}
Проблема в том, что для ступени 2 требуется вывод из 1, но он недоступен при запуске.Если я заменим различные директивы agent
глобальными agent any
, то выходные данные будут доступны, но исполнитель заблокирован в ожидании ввода пользователя на этапе 3. И если я попытаюсь объединить 1 и 2 в один этап, тоЯ теряю возможность условно выполнять некоторые шаги только на master
.
Есть ли какой-либо способ добиться того поведения, которое я ищу?