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 '成功時も失敗時も実行されます'
          }
        }
      }
    }
  }
}

やはりインデントスゴイことになるな…。

複数のパイプライン構文が混在しているのと、パイプラインで使える関数やコマンドをまだまだ知らなくて色々と苦戦中。