8

JIRA 統合を使用してセットアップされた Bamboo 環境があります。

開発者が修正済みの問題を git にコミットするたびに、コミット メッセージに問題番号が記載されています。実際、Bamboo でその問題の適切なリンクを確認でき、それが JIRA のチケットにつながります。

疑問に思っていたのですが、Bamboo がビルドにコミットされたすべてのチケットのステータスを「QA の準備完了」に自動的に設定する方法はありますか?

たとえば、JIRA で ISSUE-123 のコミットを含む新しいビルドを開始すると、Bamboo は ISSUE-123 ステータスを「QA の準備完了」に設定しますか?

4

2 に答える 2

9

はい、Bamboo は JIRA でチケットのステータスを変更できます。ただし、少し魔法をかける必要があります。

まず、 JIRA の CLI プラグインの使い方を学ぶ必要があります。これは、定期的な JIRA 関連タスクを自動化するための優れたツールです (2010 年のatlassian codegeist コンテストの勝者になったことは言及する価値があります)。実際、このツールには、ほとんどすべてのアトラシアン ツール (JIRA、Confluence、Bamboo、Crucible、Fisheye、Stash) をコマンド ライン スクリプトで自動化できるバージョンはほとんどありません。少し遅いですが、課題ステータスの変更など、ほぼすべてのことを実行できます。JIRA プラグインとしても、スタンドアロンのコマンド ライン ツールとしても使用できることに注意してください。Bamboo ビルド エージェントが実行されているマシンに、スタンドアロンバージョンの JIRA CLI プラグイン (インストール ガイドはこちら)をインストールする必要があります。

JIRA で課題を迅速に追跡するには (アトラシアンの開発者が課題ステータスを自動的に変更するプロセスを呼び出す方法です)、次のコマンドを使用する必要があります。

java -jar jira-cli-3.3.0.jar --action progressIssue --issue ISSUE-123 --step WORKFLOW_TRANSITION_ID --user USERNAME --password PASSWORD --server http://yourjira.company.com 

テンプレート オプションの値を実際の値に置き換えます。重要な値はWORKFLOW_TRANSITION_ID、JIRA 課題を実際に必要なステータスに転送するために使用されるワークフロー トランジションを指定している限りです。を見つけるWORKFLOW_TRANSITION_IDには、ISSUE-123 に使用されるワークフローを確認する必要があります。通常、同じ問題タイプ (バグ、機能強化など) を持つ問題を迅速に追跡しようとしています。また、通常、同じ課題タイプの課題には同じワークフロー (バグ ワークフローなど) があります。

JIRA の管理セクションにアクセスして、そのワークフローを見つける必要があります。次に、更新後にイシューが必要とするステータスにつながるすべてのトランジションのIDを見つける必要があります。あなたの場合、「QA の準備完了」ステータスとそのすべての着信遷移を見つける必要があります。これらのトランジションの ID を書き留めておき、後でWORKFLOW_TRANSITION_IDテンプレートの値を置き換えるために使用します。

ID が 51、62、83 のトランジションがある場合、スクリプトは次のようになります。

java -jar jira-cli-3.3.0.jar --action progressIssue --issue ISSUE-123 --step 51 --user USERNAME --password PASSWORD --server http://yourjira.company.com
java -jar jira-cli-3.3.0.jar --action progressIssue --issue ISSUE-123 --step 62 --user USERNAME --password PASSWORD --server http://yourjira.company.com
java -jar jira-cli-3.3.0.jar --action progressIssue --issue ISSUE-123 --step 83 --user USERNAME --password PASSWORD --server http://yourjira.company.com

他の課題タイプ、つまりワークフローで課題を迅速に追跡する必要がある場合は、それらのワークフローを見つけて、[QA の準備完了] ステータス (実際にワークフローで使用されている場合) につながるトランジションを見つける必要があります。以前のワークフロー。

利用可能なすべてのコマンド ライン オプションとその値に混乱している場合は、コマンド ライン オプションのリファレンスとしてJIRA CLI ドキュメントを使用してください。

問題を必要なステータス (この場合は「QA の準備完了」) に迅速に追跡するスクリプトの内容を把握したら、それを Bamboo が使用するビルド スクリプトに含める必要があります。

次のステップは、高速追跡スクリプトのコンテンツをファイルに保存することです。

バッシュ (build.sh):

while getopts "j:" opt; do
  case $opt in
    j)
      java -jar jira-cli-3.3.0.jar --action progressIssue --issue $OPTARG --step 51 --user USERNAME --password PASSWORD --server http://yourjira.company.com
      java -jar jira-cli-3.3.0.jar --action progressIssue --issue $OPTARG --step 62 --user USERNAME --password PASSWORD --server http://yourjira.company.com
      java -jar jira-cli-3.3.0.jar --action progressIssue --issue $OPTARG --step 83 --user USERNAME --password PASSWORD --server http://yourjira.company.com
      ;;
    \?)
      echo "No issue key has been passed: -$OPTARG" >&2
      ;;
  esac
done

-jスクリプトの JIRA 課題キーをコマンド ライン引数として指定するためにオプションを使用することに注意してください。

それ以外はすべて、使用するビルド管理ツール (Ant、Maven、または単純な bash) によって異なります。ただし、いずれにしても、Bamboo で使用するビルド スクリプトのコマンド ライン オプションとして、jira キー (Bamboo が git コメントから取得する) を渡すことができます。

バッシュ:

./build.sh -j ${bamboo.issueKey} 

蟻:

ant -Djirakey=${bamboo.issueKey}

メイヴン:

mvn -Djirakey=${bamboo.issueKey}

必要な最後のステップは、使用するビルド管理ツールにファスト トラック コードを適合させることです。

アリ (build.xml):

<exec executable="bash" dir=".">
   <arg value="build.sh"/>
   <arg value="-j"/>
   <arg value="${jirakey}"/>
</exec>

Mavenの場合は、はるかに複雑です。ビルド スクリプトから実行するには、 maven execプラグインを使用します。build.sh

複雑なビルド スクリプトの記述を避けるために、ビルドが成功した後に実行されるスタンドアロン ビルド ステップを Bamboo に追加することを選択できます。ただし、この場合、ビルドの実行中に問題のステータスを更新することはできません (実際には、そうする必要があるかどうかはわかりません)。通常、スタンドアロンのビルドステップを追加するだけで、目的を達成するのに十分です。./build.sh -j ${bamboo.issueKey}Bamboo に新しいビルド ステップを追加するときに、「引数」フィールドに入力するだけです。

注:現在、Bamboo をインストールしておらず、CI サーバーによる高速追跡を試す機会がないため、これらのスクリプトはテストしませんでした。ですから、注意して、自分がしていることを理解していることを確認してください。

私の推奨事項が、あなたが望むものを達成するのに役立つことを願っています. 幸運を!

于 2013-05-16T17:53:22.263 に答える