Как установить значение по умолчанию для переменной в случае шага тайм-аута? - PullRequest
2 голосов
/ 16 апреля 2019

У меня есть шаг конвейера, который ожидает ввода пользователя и имеет значение тайм-аута 1 минуту, основанное на этом решении

def deployFlag
:
:
timeout(1) {
    script{
        deployFlag = input message: 'Deploy On build ?', ok: 'Proceed ?', parameters: [choice(choices: 'true\nfalse', 
            description: 'Select true or false', name: 'Deploy'), string(defaultValue: 'false', description: '', name: 'deploy')]
    }
}

Это работает правильно.

Есть ли способ изменить это так, чтобы после истечения времени ожидания оно продолжалось со значением по умолчанию false?

Прямо сейчас, если ничего не выбрано, задание завершается с ошибкой «Отмена вложенных шагов из-за тайм-аута ...».

1 Ответ

2 голосов
/ 16 апреля 2019

Шаг timeout выдает org.jenkinsci.plugins.workflow.steps.FlowInterruptedException, когда достигает заданного времени ожидания. Вы можете перехватить это исключение и установить значение по умолчанию в блоке catch. Рассмотрим следующий пример:

node {
    stage("Test") {
        def deployFlag
        try {
            timeout(1) {
                deployFlag = input message: 'Deploy On build ?', ok: 'Proceed ?', parameters: [choice(choices: 'true\nfalse', description: 'Select true or false', name: 'Deploy'), string(defaultValue: 'false', description: '', name: 'deploy')]
            }
        } catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) {
            deployFlag = [Deploy: true, deploy: false]
        }

        println deployFlag
    }
}

Перехват этого исключения заставляет конвейер продолжать сборку вместо сбоя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...