😎

【Jenkins】パイプラインの処理を一時停止しユーザーに確認を促す方法

2023/10/28に公開

はじめに

Jenkinsのパイプラインの処理を一時停止し、ユーザーに確認を促す方法について書きます。
職場でもよく使用している方法になります。

コード

stepsの中に以下のコードを記載します。

timeout(time:<時間(分)>, unit:"MINUTES") {
    input id: "id", message: "<メッセージ>", ok:"Yes"
}

こちらのコードの意味としては、指定した時間分一時停止を行い、ユーザーに後続処理を実行するか確認を促すものになります。

記載例としては、以下になります。

記載例
pipeline {

  agent {
    label "master"
  }

  options {
    skipDefaultCheckout()
    disableConcurrentBuilds()
    timestamps()
  }

  stages {
    stage("AWS接続確認"){
      steps {
        echo "# AWS接続確認 開始 #"
        timeout(time:3, unit:"MINUTES") {
          input id: "id", message: "S3一覧を確認しますか?", ok:"Yes"
        }
        script {
          sh "aws s3 ls"
        }
        echo "# AWS接続確認 終了 #"
      }
    }
  }

  post {
    always {
      echo "# AWS接続チェック 終了 #"
    }
    success {
      echo "# AWS接続チェック 正常終了 #"
    }
    failure {
      echo "# AWS接続チェック 異常終了 #"
    }
  }

}

こちらの例としては、S3一覧を確認する前に後続処理を実行するか確認するようにしております。

パイプライン実行例

上記で紹介している記載例のコードをJenkinsで実行すると、以下のようにメッセージが表示され処理が一時停止します。

一時停止
[Pipeline] input
10:36:16  S3一覧を確認しますか?
10:36:16  Yes or Abort

挙動としては、以下になります。

動作 挙動
「Yes」を押下 後続処理が走る
「Abort」を押下 or 3分間待機 処理が途中で終了する

参考

https://www.jenkins.io/doc/book/pipeline/syntax/#input

Discussion