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

Jenkins との連携

この記事では、Jira Service Management Cloud の一部のお客様に段階的に展開されている、Jira Service Management でネイティブに利用できる新しいアラート機能を取り上げています。ご利用のサイトにはまだ表示されていないか、利用できない可能性があります。

Jenkins のロゴ

統合でできるようになること

Jira Service Management で Jenkins 統合を使用して、Jenkins のビルド・アラートを Jira Service Management に転送します。Jira Service Management は、オンコール スケジュールに基づいて通知すべき担当者を決定します。メール、テキスト・メッセージ (SMS)、電話、iOS や Android のプッシュ通知による通知を行い、アラートが承認またはクローズされるまでアラートをエスカレートします。

統合による機能

Jenkins でビルド関連の問題が発生すると、統合によって Jira Service Management でアラートが自動的に作成されます。

統合をセットアップする

Jenkins は API ベースの統合です。設定は次の手順で行います。

  • Jira Service Management で Jenkins 統合を追加する

  • Jenkins で統合を設定する

Jenkins 統合を追加する

Jira Service Management の Free プランまたは Standard プランを使用している場合は、この統合はチームの運用ページからのみ追加できます。Settings (歯車のアイコン) > Products ([Jira 設定] の下) > OPERATIONS からこの機能にアクセスするには、Premium プランまたは Enterprise プランが必要です。

統合をチームの運用ページから追加すると、そのチームが統合の所有者になります。つまり、Jira Service Management は、この統合を通じて受信したアラートをチームにのみ割り当てます。

Jira Service Management で Jenkins 統合を追加するには、次の手順に従います。

  1. チームの運用ページに移動します。

  2. 左側のナビゲーション パネルで、[統合]、[統合を追加] の順に選択します。

  3. 検索を実行して「Jenkins」を選択します。

  4. 次の画面で、統合の名前を入力します。

  5. オプション: 特定のチームが統合からのアラートを受信するようにする場合は、[Assignee team (担当者チーム)] のチームを選択します。

  6. [続行] を選択します。
    この時点で、統合が保存されます。

  7. [統合を設定するステップ] セクションを展開して、API URL と API キーをコピーします。
    この URL とキーは、後ほど Jenkins で統合を設定する際に使用します。

  8. [統合をオンにする] を選択します。
    統合のために作成したルールは、統合をオンにした場合にのみ機能します。

Jenkins で統合を設定する

Jenkins で統合を設定するには、次の手順に従います。

  1. Jenkins マシンで、[Manage Jenkins (Jenkins の管理)] > [Go to plugin manager (プラグイン・マネージャーに移動)] > [Available (有効)] の順に移動して、Jira Service Management プラグインを検索して選択し、インストールします。

  2. Jenkins のメイン・ページに戻ります。

  3. グローバル・プラグイン設定を設定するには、[Manage Jenkins (Jenkins の管理)] > [Configure System (システムの設定)] > [Jira Service Management Notifier Settings (Jira Service Management 通知設定)] の順に移動します。

    • 以前にコピーした API URL と API キーを適切なフィールドに入力します。API URL は既定の値に設定されますが、別の値も設定できます。

    • 通知するチームとアラート・タグを入力します。
      これらのフィールドは既定の設定として使用され、特定のジョブに対して上書きされます。

  4. ビルド後のアクションは、次の手順に従います。

    1. [Configure (設定)] を選択して、Jenkins ジョブの Jira Service Management プラグインを有効化します。

    2. プロジェクト設定の [Post-Build Actions (ビルド後のアクション)] セクションまでスクロールします。

    3. [Add post-build action (ビルド後のアクションを追加)] を選択します。

    4. 表示されたリストから [Send Alert to Jira Service Management (Jira Service Management にアラートを送信)] を選択します。
      [Send Alert to Jira Service Management (Jira Service Management にアラートを送信)] セクションがウィンドウに表示されます。

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

  5. ジョブの設定では、次の手順に従います。

    1. Jira Service Management プラグインの Jenkins ジョブ設定を設定するには、[Configure (設定)] > [Send Alert to Jira Service Management (Jira Service Management にアラートを送信)] の順に移動します。

    2. Jira Service Management にアラートを送信するには、[アラートの送信を有効にする] を選択します。

    3. [ビルド開始を通知する] を選択すると、ビルド開始を通知するアラートが Jira Service Management に送信されます。

    4. 以前にコピーした API URL と API キーを適切なフィールドに入力します。これらのフィールドに入力すると、グローバル設定が上書きされます。

    5. 通知するチームとアラート タグを入力します。グローバル設定を上書きするには、これらのフィールドに入力します。

    6. [優先度] フィールドから、ビルド・ステータス・アラートの優先度を選択します。

    7. [Build Start Alert's Priority (ビルド開始ステータス・アラートの優先度)] フィールドから、ビルド開始ステータス・アラートの優先度を選択します。

Jenkins プラグインの詳細をご確認くださいオープン・ソース・プロジェクトの詳細をご確認ください

Jira Service Management でステップ関数を設定する

パイプライン・ステージまたはポスト・アクションから Jira Service Management トリガー・ステップ関数を呼び出せます。Jira Service Management のステップ関数は、タグ (コンマ区切り)、チーム (コンマ区切り)、優先度、apiKey および apiUrl といったパラメーター (またはパラメーターなし) で呼び出すことができます。
リクエストの例は次のとおりです。

step

1 jsm(tags: "tag1,tag2" , teams: "team1", priority: "P1")

API キーと API URL

API キーと API URL は、[Manage Jenkins (Jenkins の管理)] > [Configure System (システムの設定)] > [Jira Service Management Notifier Settings (Jira Service Management 通知設定)] から設定できます。
また、jsm(apiKey: "myApiKey", apiUrl: "myApiUrl") のようなステップ関数呼び出しから API キーと API URL をオーバーライドできます。

パイプライン・スクリプトの例

 

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 pipeline { agent any stages { stage('pre') { steps { sh 'echo "pre success!"; exit 0' } } stage('post') { steps { sh 'echo "post success!"; exit 0' } } stage('Test') { steps { sh 'echo "Failed!"; exit 1' } } } post { always { echo 'This will always run' } success { echo 'This will run only if successful' jiraservicemanagement(tags: "informational") } failure { echo 'This will run only if failed' jiraservicemanagement(tags: "failure, critical", teams: "engineering", priority:"P1") } unstable { echo 'This will run only if the run was marked as unstable' jiraservicemanagement() } changed { echo 'This will run only if the state of the Pipeline has changed' echo 'For example, if the Pipeline was previously failing but is now successful' } } }

その他のヘルプ