この連携は、ファイアウォールの背後で実行されている Jenkins サーバーと Jira Software Cloud および Jira Service Management Cloud を接続するための、簡単かつ安全で信頼できる無料の方法を提供します。パイプライン ステップを定義する Jenkinsfile にいくつかの行を追加すると、連携機能によってビルド データおよびデプロイ データの Jira への送信が開始され、関連する Jira 課題に関連付けられます。

これにより、チーム全体が Jira のすべての課題の詳細ビューで可視性とコンテキストを活用し、最新のビルド ステータスや、その作業が環境に正常にデプロイされたかどうかを確認できるようになります。

また、この情報を使用して Jira クエリ言語 (JQL) で課題を横断して検索し、"現在のスプリントのどの課題が本番環境にデプロイされたか" などの疑問に容易に回答できるようになります。これらをボード上にクイック フィルターとして追加することもできます。

はじめる前に

時間: 15 ~ 30 分

前提条件

  • Jira Cloud サイトのサイト管理者であること。

  • Jenkins の管理者であり、プラグインをインストール、更新、および削除できること。

  • チームは課題キー (例: FUSE-123) をコミット メッセージ (デプロイ情報用) およびブランチ名 (ビルド情報用) の一部として追加する必要があります。チームがこのパターンに従っていない場合は、 開発作業から課題を参照する方法をご覧ください。

  • 自身のソース コード / リポジトリで、この連携で使用するパイプラインの  Jenkinsfile  を編集できます。

Jira Software Cloud を Jenkins とリンクする

Jenkins 用の OAuth 認証情報を Jira で作成

  1. Jira ホーム > [Jira 設定] > [アプリ] に移動します。

  2. [OAuth 認証情報] を選択します。

  3. [認証情報の作成] を選択します。

  4. 以下の詳細を入力してください。

Jenkins 用の Jira Cloud プラグインをインストールする

  1. Jenkins サーバーにログインして Plugin Manager に移動します。

  2. [Available] タブを選択し、プラグイン名として "Atlassian Jira Software Cloud " を検索してインストールします。

オープンソースのプラグインは GitHub でホストされています。こちらで確認できます


Jenkins 用の OAuth 資格情報を追加する

  1. Jenkins の [Manage Jenkins] > [Configure System] 画面で、[Jira Software Cloud integration] セクションまでスクロールします。

  2. [Add Jira Cloud Site] > [Jira Cloud Site] を選択します。[Site name]、[ClientID]、[Secret] フィールドが表示されます

  3. 以下の詳細を入力してください。

    • Site name: Jira Cloud サイトの URL。例: yourcompany.atlassian.net

    • Client ID: [OAuth 認証情報] 画面 ([クライアント ID] 列) からコピーします。

    • Secret: [Add] > [Jenkins] を選択します。

      • [Kind] では、[Secret text] を選択します。

      • [Secret] は、[OAuth 認証情報] 画面 ([シークレット] 列) からコピーします。

      • [Description] には説明を指定します。

    • シークレット: 新しく作成したシークレットを選択します。
  4. [Test connection] を選択して、Jira サイトで認証情報が有効であることを確認します。

  5. [保存] を選択します。

Jenkins 用の Jira Cloud プラグインを使用する

スニペットを生成する

  1. Jenkins で特定のパイプラインに移動します。

  2. 左側のメニューから [Pipeline Syntax] を選択します。

  3. Snippet Generator で、Samlple Steps のドロップダウン リストから [jiraSendDeploymentInfo]、[jiraSendBuildInfo]、または [checkGatingStatus] を選択し、関連する詳細を入力します。

  4. [Generate Pipeline Script] を選択して出力をコピーし、Jira を通知したい Jenkinsfile にコピーして貼り付けます。

ビルド情報を Jira に送信する

これは、Jenkinsfile の非常にシンプルな「ビルド」ステージのセットアップにおけるスニペットの例です。これは、パイプラインの実行後、ブランチ名を確認し、ビルド情報を Jira Cloud サイトに post します。ブランチ名に Jira 課題キー (例:“TEST-123”) が含まれる場合は、データを Jira に送信します。

stage('Build') {
   steps {
       echo 'Building...'
   }
   post {
       always {
           jiraSendBuildInfo site: '<sitename>.atlassian.net'
       }
   }
}


Jira でデプロイ情報を送信する

これは、master ブランチへの任意の変更で実行されるステージのスニペットの例です。ここでも post ステップを使用して、デプロイ データを Jira と関連する課題に送信します。ここで、environmentIdenvironmentName、および environmentType を、Jira に表示したい内容に設定する必要があります。State ServiceIds を含めて、デプロイの進捗、結果、影響を受けるものにコンテキストを追加します。

stage('Deploy - Production') {
   when {
       branch 'master'
   }
   steps {
       echo 'Deploying to Production from master...'
   }
   post {
       always {
           jiraSendDeploymentInfo site: '<sitename>.atlassian.net', environmentId: 'us-prod-1', environmentName: 'us-prod-1', environmentType: 'production'
       }
   }
}


環境とサービスの詳細をパラメーターとして含める

サイト、環境、サービスの詳細 (パラメーターとして) は、環境変数としてビルドに公開されます。

Jira サイト、環境、サービスの詳細を Jenkins パイプラインでパラメーターとして追加するには、次の手順を実行します。

  1. Jenkins に移動し、パイプラインを選択します。

  2. [設定] を選択します。

  3. [一般] タブを選択します。

  4. [This project is parameterized (このプロジェクトをパラメーター化する)] をチェックします。

  5. [Add Parameter (パラメーターを追加)] > [String parameter (文字列パラメーター)] を選択します。

  6. パラメーターの名前、デフォルト値、説明を入力します。

  7. [保存] を選択します。


課題キーを取得するカスタム ロジックを指定する

デフォルトでは、プラグインがビルドの変更履歴にあるすべてのコミット メッセージから変更ログを抽出します。この動作をオーバーライドして独自のロジックを追加し、issueKeys パラメーターとして課題キーを指定できます。

jiraSendDeploymentInfo site: '<sitename>.xyz.net', 
environmentId: 'us-prod1', environmentName: 'us-prod2', 
environmentType: 'production', issueKeys: ['DEV-001', 'DEV-002']


Jira へのデプロイ情報を表示する
適切にセット アップされている場合、Bitbucket や GitHub などの SCM ツールでコミットを行うか PR をマージするたびに、そのリポジトリに指定した Jenkins パイプラインが実行されます。ビルドとデプロイの情報は、課題の詳細ビューの右側に表示されます。課題に関する開発情報を表示する方法についてご確認ください

Jira Service Management Cloud を Jenkins とリンクする

Jira Service Management と Jenkins を使用して 変更管理プロセスを自動化する方法についてご確認ください。.

詳細