Jenkins Declarative Pipeline で try catch finally する
Declarative Pipeline v1.2 以降で検証。
Declarative Pipeline 自体には try catch finally
の構文はなく、script
ブロックを使って以前の Scripted Pipeline 構文を利用し、その中で try catch finally
を使うしかないようだ。
pipeline {
agent any
stages {
stage('エラーが起こりそうな処理') {
steps {
script {
try {
// ココにエラーが起こりそうな処理を書く
bat 'ruby -v'
}
catch(error) {
echo 'なにやらエラーです'
}
finally {
echo '成功時も失敗時も実行されます'
}
}
}
}
}
}
やはりインデントスゴイことになるな…。
複数のパイプライン構文が混在しているのと、パイプラインで使える関数やコマンドをまだまだ知らなくて色々と苦戦中。