Отметить стадию Jenkins как потерпевшую неудачу в сценарии конвейера - PullRequest
0 голосов
/ 25 февраля 2019

Я начал со стадии в рабочем процессе следующим образом:

try{
    stage('Example_1'){
        bat "${PYTHON} script_1.py"
    }
}
catch(e){
    build_ok = false
}

try{
    stage('Example_2'){
        if(build_ok){
           bat "${PYTHON} script_2.py"
        }
    }
}
catch(e){
    build_ok = false
}

stage('Cleanup'){
    bat "${PYTHON} script_1.py"
}

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

Однако теперь мне нужен код выхода из скрипта Python.Это может быть сделано с помощью:

stage('Example_1'){
    exitcode = bat script: "${PYTHON} script_1.py", returnStatus: true
}

Этот документ работает следующим образом:

returnStatus: Обычно скрипт, который завершается с ненулевым кодом состояния, вызываетшаг, чтобы потерпеть неудачу с исключением.Если этот флажок установлен, возвращаемое значение шага будет вместо кода состояния.Затем вы можете сравнить его с нулем, например.

Я знаю, как пометить всю сборку как неудачную (currentBuild.result = 'FAILURE'), но мне также нужен этап, чтобы быть неудачным.

Так как же пометить сцену как неудачную, если возвращенный код выхода указывает, что произошел сбой?(Не все ненулевые коды выхода означают сбой.)

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