我有一個詹金斯管道腳本,大部分工作正常,我圍繞大多數事情,將嘗試捕獲引發致命錯誤。然而,不時會發生意想不到的事情,我希望能夠在構建失敗之前有一個安全的捕獲所有可用的最終報告。如何在Jenkins中捕捉任何管道錯誤?
是否沒有最終的默認'階段'我可以定義,只要沒有捕獲到錯誤就運行?
我有一個詹金斯管道腳本,大部分工作正常,我圍繞大多數事情,將嘗試捕獲引發致命錯誤。然而,不時會發生意想不到的事情,我希望能夠在構建失敗之前有一個安全的捕獲所有可用的最終報告。如何在Jenkins中捕捉任何管道錯誤?
是否沒有最終的默認'階段'我可以定義,只要沒有捕獲到錯誤就運行?
您可以通過,包裝所有的構建階段,在一個大try/catch/finally {}
塊例如做到這一點:
node('yournode') {
try {
stage('stage1') {
// build steps here...
}
stage('stage2') {
// ....
}
} catch (e) {
// error handling, if needed
// throw the exception to jenkins
throw e
} finally {
// some common final reporting in all cases (success or failure)
}
}
雖然已經回答了腳本的管道,我想指出的是,對於一個聲明該管道用post section完成:
pipeline {
agent any
stages {
stage('No-op') {
steps {
sh 'ls'
}
}
}
post {
always {
echo 'One way or another, I have finished'
deleteDir() /* clean up our workspace */
}
success {
echo 'I succeeeded!'
}
unstable {
echo 'I am unstable :/'
}
failure {
echo 'I failed :('
}
changed {
echo 'Things were different before...'
}
}
}
每個階段也可以在需要時它自己的部分。
你可以將它封裝在'try {} finally {}中, – Rik