• 製品
  • 使用を開始する
  • 関連ドキュメント
  • リソース

Jenkins によるデプロイ の追跡を使用する

デプロイの追跡を使用すると、Jenkins パイプラインの任意の段階から変更リクエストを自動的に作成または更新できます。変更に関係者の承認が必要ない場合は、デプロイの追跡を使用します。関係者の承認が必要な場合は、デプロイのゲーティングを使用します。

デプロイの追跡を使用するには、次の手順を実行する必要があります。

Jenkins によるデプロイの追跡を使用するには、次の手順を実行します。

  1. Jenkinsfile に移動します。

  2. Jira に通知したいパイプラインの段階を見つけます。

  3. sendJiraDeploymentInfo ブロックを段階ステップに追加して、Jira Service Management プロジェクトからコピーした Jira サイト名環境 ID環境タイプサービス IDを置換します。

スニペットの例

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 stage('Production') { steps { // Notify Jira a new deployment has started jiraSendDeploymentInfo ( environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production', serviceIds: [ '<YOUR-SERVICE-ID>' ], site: '<YOUR-SITE>.atlassian.net', state: 'in_progress' ) sh 'echo Deploy to Production starting...' } post { always { sh 'sleep 2' sh 'echo Deployment to production finished' } success { echo 'Deployment successful' // Notify Jira if the deployment succeeded jiraSendDeploymentInfo ( environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production', serviceIds: [ '<YOUR-SERVICE-ID>' ], site: '<YOUR-SITE>.atlassian.net', state: 'successful' ) } failure { echo 'Deployment failed' // Notify Jira if the deployment succeeded jiraSendDeploymentInfo ( environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production', serviceIds: [ '<YOUR-SERVICE-ID>' ], site: '<YOUR-SITE>.atlassian.net', state: 'failed' ) } } } }

 

完全な Jenkinsfile の例

本番へのデプロイが開始されたら Jira に通知し、デプロイが終了したらもう一度通知します。 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 pipeline { agent any stages { stage('Build') { steps { sh 'echo Run build...' } } stage('Test') { steps { sh 'echo Run tests...' } } stage('Stage') { steps { sh 'echo Deploy to Staging...' } } stage('Production') { steps { jiraSendDeploymentInfo ( environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production', serviceIds: [ '<YOUR-SERVICE-ID>' ], site: '<YOUR-SITE>.atlassian.net', state: 'in_progress' ) sh 'echo Deploy to Production starting...' } post { always { sh 'sleep 2' sh 'echo Deployment to production finished' } // Notify Jira based on deployment step result success { echo 'Deployment successful' jiraSendDeploymentInfo ( environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production', serviceIds: [ '<YOUR-SERVICE-ID>' ], site: '<YOUR-SITE>.atlassian.net', state: 'successful' ) } failure { echo 'Deployment failed' jiraSendDeploymentInfo ( environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production', serviceIds: [ '<YOUR-SERVICE-ID>' ], site: '<YOUR-SITE>.atlassian.net', state: 'failed' ) } aborted { echo 'Deployment cancelled' jiraSendDeploymentInfo ( environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production', serviceIds: [ '<YOUR-SERVICE-ID>' ], site: '<YOUR-SITE>.atlassian.net', state: 'cancelled' ) } } } } }

 

その他のヘルプ