Декларативный конвейер Jenkins - Как добавить шаг ввода, только если выполняется условие - PullRequest
1 голос
/ 24 марта 2020

У меня есть входной каскад в моем конвейере, который я хотел бы запустить, только если выполнено определенное условие.

    stage ('input stage') {
        agent none
        when {
            expression {
                condition1 == "YES"
            }
        }
        input {
            message 'Proceed with this step?'
            submitter "${approvers}"
        }
        steps {
            echo "Proceeding with step..."
        }
    }

Однако этап ввода, по-видимому, ожидает подтверждения отправителя, даже если условие не выполняется.

Я предполагаю, что это будет возможно для ступеней с входами. Есть ли проблема с вышеуказанным блоком кода?

Заранее спасибо.

1 Ответ

3 голосов
/ 24 марта 2020

Здесь нет "проблемы", просто работает директива ввода декларативного конвейера (выделено мое):

Директива ввода на сцене позволяет вам запрос на ввод, используя шаг ввода. Этап приостанавливается после того, как были применены какие-либо параметры, и до входа в блок агента для этого этапа или , оценивающего условие этапа. Если вход утвержден, этап будет продолжен.

Чтобы проверить условие when перед input, поверните input в шаг:

stage ('input stage') {
    agent none
    when {
        expression {
            condition1 == "YES"
        }
    }
    steps {
        input message: 'Proceed with this step?', submitter: "${approvers}"
        echo "Proceeding with step..."
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...