We're updating our terminology in Jira

'Issue' is changing to 'work item'. You might notice some inconsistencies while this big change takes place.

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 統合を追加する

双方向統合は Free プランと Standard プランではサポートされていません。他のすべての統合は FreeStandard でチーム レベルでサポートされています。ただし、送信統合を機能させるには、上位のプランにアップグレードする必要があります。Settings (歯車アイコン) > Products (Jira 設定の下) > OPERATIONS からサイト レベルで統合を追加できるのは、Premium プランと Enterprise プランのみです。

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

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

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

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

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

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

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

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

  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

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 をオーバーライドできます。

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

 

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' } } }

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。