У меня есть код, аналогичный приведенному ниже, в моем файле Jenkins:
node {
checkout scm
// do some stuff
try {
// do some maven magic
} catch (error) {
stage "Cleanup after fail"
emailext attachLog: true, body: "Build failed (see ${env.BUILD_URL}): ${error}", subject: "[JENKINS] ${env.JOB_NAME} failed", to: '[email protected]'
throw error
} finally {
step $class: 'JUnitResultArchiver', testResults: '**/TEST-*.xml'
}
}
Если приведенный выше код не работает из-за некоторых ошибок, связанных с конвейером Дженкинса в try { }
(например, с использованием неутвержденного статического метода), сценарий завершается с ошибкой. Когда я удаляю команду try / catch / finally, я вижу ошибки. Я делаю что-то неправильно? Разве повторное error
не должно приводить к появлению ошибок конвейера в журнале?
РЕДАКТИРОВАТЬ: Мне удалось решить проблему с помощью отличного синтаксиса, когда, например, Я использую переменную, которая еще не назначена. Пример:
echo foo
Если foo
нигде не объявлен / не назначен, Jenkins завершит сборку с ошибкой и не покажет причину, если она находится внутри try / catch / finally, которая повторно генерирует исключение.