Я хочу установить результат сборки на UNSTABLE
, когда шаг сборки maven завершается из-за неудачных тестов. Я использую шаг сборки withMaven, который обеспечивает специальную обработку результатов теста maven: в случае неудачных тестов он устанавливает результат сборки на UNSTABLE
, прежде чем выполнить шаг.
Это отлично работает при использовании скриптов трубопровод. Однако в случае декларативного конвейера результат сборки устанавливается на FAILURE
.
. Это иллюстрируется следующими примерами кода.
Редактировать: Обратите внимание, что блоки try / catch и post не требуются для примера. Они присутствуют только для того, чтобы значение currentBuild.result
могло быть проверено сразу после вызова withMaven
.
Декларативное
pipeline {
agent any
stages {
stage('Build') {
steps {
withMaven() {
sh 'mvn clean verify' // -> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
}
}
post {
always {
echo "CurrentResult: $currentBuild.currentResult" // -> FAILURE
echo "Result: $currentBuild.result" // -> FAILURE
// overall build result -> FAILURE
}
}
}
}
}
Сценарий
node() {
stage('Build') {
try {
withMaven() {
sh 'mvn clean verify' // -> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
}
} catch (e) {
echo "CurrentResult: $currentBuild.currentResult" // -> UNSTABLE
echo "Result: $currentBuild.result" // -> UNSTABLE
// overall build result -> UNSTABLE
}
}
}
Как сохранить результат сборки UNSTABLE
из шага сборки maven в декларативном конвейере?
Используемые версии: Jenkins 2.204.1, Плагин интеграции Pipeline Maven 3.8.2, Maven 3.6.3 (установлен на агенте сборки), AdoptOpenJDK 1.8.0_222.