Jenkins から Jira に送信されるビルド イベントとデプロイ イベントを自動化する

このトピックでは、Jenkins for Jira を使用して Jenkins サーバーを Jira Cloud サイトに接続するプロセスにおけるオプションのステップを詳しくご説明します。接続を完了してデータを流すだけであれば、このステップは不要です。また、このステップには、Jenkins パイプラインが作成される仕組みに関する十分な実務知識が必要となります。チームによっては、多数のパイプラインを実行している Jenkins サーバーへの接続をセットアップする際に役に立つでしょう。

Jenkins for Jira アプリを使用して Jenkins サーバーから Jira にビルド イベントとデプロイ イベントを送信する場合は、Jenkins サーバー上の Atlassian Jira Software Cloud プラグインが、Jira にデータを送信するための明示的な指示をサーバー パイプラインで探します。具体的には、それらのパイプラインを定義する Jenkinsfile 内でこれらの指示を探します。

こうした指示は、Jenkins サーバーに接続する際に Jira で生成される「セットアップ ガイド」に詳述されています。

さらに、Jenkins サーバーで Atlassian Jira Software Cloud プラグインをセットアップする際には、Jenkins 管理者が次のような詳細オプションの有効化を選択できます。

  • ビルドを自動送信する

  • デプロイを自動送信する

これらのオプションを選択すると、Atlassian Jira Software Cloud プラグインは、パイプラインの Jenkinsfile で明示的な指示を探すほか、それらのビルド ステージとデプロイ ステージにおける特定の命名規則も探します。これらのいずれかが見つかると、接続済みの Jira サイトにデータが送信されます。詳細は「Jenkins for Jira の仕組み」をご参照ください。

チームに自動化が適しているかを検討する

Jenkinsfile を作成する際に、ビルド ステージとデプロイ ステージで一貫した命名規則を使用している一部のチームでは、とりわけ Jira プロジェクトが多数の Jenkins パイプラインを利用している場合において、それぞれのビルド ステージとデプロイ ステージに対して特定の指示を入力するよりも、ステージ名を使用するほうが便利だと感じる場合もあるでしょう。

これがチームにとって適切なオプションかどうかを調べるには、開発者に連絡して次のことを尋ねてください。

  1. 各 Jira プロジェクトに関連する Jenkinsfile を管理しているのは誰ですか?

  2. あなたのチームは以下のことを望んでいますか?

    • Jira にデータを送信する各パイプラインをきめ細かく制御する

    • Jenkins がパイプラインを実行するたびに、Jira にビルドとデプロイの更新を送信する

各 Jira プロジェクトの Jenkinsfile を誰が維持管理しているかがわかったら、担当のチーム メンバーに以下の質問をします。

  1. Jenkinsfile を書くとき、ビルド ステージとデプロイ ステージで一貫した命名構造を採用していますか?

    • 例: 

      • すべてのビルド ステージの名前は stage('build')? ですか?

      • すべてのデプロイ ステージの名前は stage('deploy to staging') や stage('deploy to prod') などですか?

  2. その場合、命名構造はどのようになっていますか?

セットアップ オプション


上記の質問に対するチームの回答に応じて、これらのオプションを有効にすることがチームにとって適切かどうかが変化します。

ビルド データを自動送信する

この設定は、Jenkins がビルド イベントを Jira に送信する方法を対象としています。

チームが Jenkins をどのように使用するかに基づいて、次の選択肢があります。


チームのニーズ

  1. パイプラインが実行されるたびに、Jenkins から Jira にビルドの更新を送信したい。

  2. Jenkinsfile を記述する際のビルド ステージの命名構造が一貫している。

    • たとえば、すべてのビルド ステージに stage('build') という名前が付けられている場合

あなたやJenkins 管理者は次のことを実行する必要があります。

  • このオプションを有効にする

  • チームのビルド ステージの命名構造と一致する正規表現フィルターを入力する

    • 例:

      • すべてのビルド ステージに stage('build') という名前が付けられている場合

      • ^build$ という正規表現を入力する


チームのニーズ

  1. Jenkins がパイプラインを実行するたびに、Jira にビルドとデプロイの更新を送信したい。

  2. Jenkinsfile を記述する際のビルド ステージの命名構造が一貫していない

あなたやJenkins 管理者は次のことを実行する必要があります。

  • このオプションを有効にする

  • 正規表現のフィルター フィールドはのままにする


チームのニーズ

  1. Jira にデータを送信する各パイプラインをきめ細かく制御したい

あなたやJenkins 管理者は次のことを実行する必要があります。

  • このオプションを無効にする

デプロイ データを自動送信する

この設定は、Jenkins がデプロイ イベントを Jira に送信する方法を対象としています。

チームが Jenkins をどのように使用するかに基づいて、Jenkins 管理者が知っておくべきことは次のとおりです。


チームのニーズ

  1. Jenkinsfile を記述する際のデプロイ ステージの命名構造が一貫している。

    • たとえば、すべてのデプロイ ステージに stage('deploy to staging')stage('deploy to prod') などの名前が付けられている場合

  2. すべてのパイプラインからデプロイ データを Jira に送信したい

あなたやJenkins 管理者は次のことを実行する必要があります。

  1. このオプションを有効にする

  2. チームがデプロイ ステージで使用する名前に一致する正規表現フィルターを入力する

    • 例:

      • すべてのデプロイ ステージに stage('deploy to staging')stage('deploy to prod') などの名前が付けられている場合

      • ^deploy to (?<envName>.*)$ という正規表現を入力する

        • 「staging」や「prod」などの特定のステージ名の代わりに (?<envName>.*) を使用すると、Jenkins が環境名を抽出して Jira で表示します。


チームのニーズ

  • Jenkinsfile を記述する際のデプロイ ステージの命名構造が一貫していないまたは

  • Jira にデータを送信する各パイプラインをきめ細かく制御したい

あなたやJenkins 管理者は次のことを実行する必要があります。

  • このオプションを無効にする

その他のヘルプ