У меня есть код, аналогичный приведенному ниже в моем файле 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'
}
}
Если приведенный выше код завершился с ошибкой из-за некоторых связанных с jenkins-конвейеров ошибок в try { }
(например, с использованием несанкционированного статического метода), script терпит неудачу. Когда я удаляю try/catch/наконец, я вижу ошибки.
Я делаю что-то неправильно? Не следует ли перестроить error
, чтобы ошибки конвейера отображались в журнале?
EDIT:
Мне удалось решить проблему до синтаксиса groovy, когда, например, Я использую переменную, которая еще не назначена.
Пример:
echo foo
Если foo
не объявляется/не назначается в любом месте, Jenkins откажет сборку и не покажет причину, если она находится внутри try/catch/finally, которая заново исключает исключение.