Stash と Bamboo による理想的な継続的インテグレーション

【 この記事は、3483人に読まれています】

 

今回は、Git リポジトリである Stash と、継続的インテグレーションと自動デプロイの Bamboo の連携について設定方法と連携のポイントをご紹介します。

それぞれの設定方法については、以下を参照してください。


 

連携シナリオ


 

バージョン管理のリポジトリと継続的インテグレーションの連携ですので、想像がつくかと思います。今回は、Git で特定のブランチ (master など) に変更があったら Bamboo で検知して継続的インテグレーションが動くようにするというシナリオで行きましょう。

設定が大変そうと思うかもしれませんが、Bamboo はとても優秀です。ブラウザ上からの設定でつまずくことなく設定いただけます。

 

アプリケーションリンク


 

過去の投稿でもお伝えしていますが、Atlassian のツールは、「アプリケーションリンク」という連携設定を行えば、つなぐことができます。OAuth 認証が通るように設定することで相互に呼び出し連携しあってくれます。

設定は、Stash からは、Administration の SETTINGS にある Appliaction Links で、Bamboo からは、Administration の ADD-ONS にある Application Links で行います。

image
Application の箇所に、Stash なら Bamboo の Bamboo なら Stash の URL を入力し、[Create new link] ボタンをクリックするだけです。

その後に、双方の設定が進みますが、たとえば、Facebook と Twitter のアプリ連携などと同じ発想、ステップで行えますので、難しいことはないでしょう。

そこまで終えたら上図のように一覧にリストされますので、「Edit」をクリックします。

image
送信認証 (Outgoing Authentication) と受信認証 (Incomming Authentication) において、「信頼されたアプリケーション」、「OAuth」、「基本認証」のうち適切なものを設定します。これを Stash でおこなったならば、次に Bamboo で同じく一覧に出ている Edit をクリックし、送信認証/受信認証ともに設定しておきましょう。これで双方向の連携ができるようになりました。

おぜん立ては、以上です。

 

Bamboo でのビルドの設定


 

今回の連携の主眼は、継続的インテグレーションにあります。従って、Bamboo から Stash にアクセスできるかが一番重要となります。Bamboo でビルドの計画を作成するときに、リポジトリを聞かれます。以下のような画面になります。

image
Bamboo では、継続的インテグレーションを行うためのバージョン管理リポジトリを複数設定しておくことが可能です。選べる VCS も、

image
上図のように多種多様です。これ以外にも Add-on によりたとえば、TFS のリポジトリを見に行くなど柔軟に対応しています。

ここでは、「Git」を選んでおきます。Stash は Git のリポジトリですのでわかりやすいですね。Git での主な設定は、

image
リポジトリの URL の入力、ブランチの指定、認証方式の設定です。これがあれば、Bamboo は Git のリポジトリをウォッチすることができるようになります。

 

Stash 用の設定


 

さて、ここからが、Stash 用の設定です。設定ページの下部に、Advanced Options というのがありますので、これを展開します。

image
展開すると下のほうに Stash の設定があります。

image
Web Repository として選択できるのは、「None」「Stash」「FishEye」の3つです。ここでは「Stash」を選択します。

Stash の URL、Stash のプロジェクトのキー(ID)、リポジトリ名を入力するだけです。

 

連携の効果


 

Stash と Bamoo を連携させることで、どのような効果があるかというと Bamboo のビルドレポートに Stash (Git) のコミットIDが付与されますが、ここからクリック一発で詳細な情報に切り替えることができるようになります。

image
クリックすると、Stash に。

image
Bamboo には、コミットの他にも、バグやタスクの Issues、テストの結果、ビルド成果物などが自動で紐づけられています。Stash には、同じく変更時のバグやタスクの Issues が紐づけられていますので、ビルド結果からも変更履歴からもどのタスク、バグに関連した作業をして、それが動くソフトウェアとしてのビルドとして盛り込まれているのかどうかが明確になります(テスト結果もあるので品質指標ともなります)。今後に触れますが、コードカバレッジもビルドプロセスの中で取ることができますので、より強力にしていくことができます(Issues は JIRA との連携でやってます)。

「連携させる」というと面倒だと思うでしょうが、ここまで簡単に設定ができ(もちろん管理者が一度やればいいだけ)、自動で情報が紐づけられるならやらない理由は少なるなるのではないでしょうか。

このあたりの意義については、デブサミ 2014 の講演でもお伝えしました。

デブサミ2014 【14-D-4】アトラシアン エバンジェリストが語るこれからの開発スタイル【資料公開】


今回は、Stsh, Bamboo (+JIRA) で見てきましたが、いろいろなツールとつながるのもアトラシアン製品の特長です。たとえば、GitHub とも Bamboo, JIRA がつながります。

関連投稿:


 

ツール連携 記事一覧:



 

 

【 この記事は、3483人に読まれています】

Posted in ツール and tagged , , , , , .

長沢智治

アトラシアンのシニア エバンジェリスト。

ALM, アジャイルなどの開発プラットフォームの訴求を中心に活動している。認定スクラムマスター、ASTER テストツールWG、『アジャイルソフトウェアエンジニアリング』『C# 実践開発手法』の監訳、Agile Ultimate Stories Iteration 1,2,3,4,5 など寄稿、共同執筆多数。

2 Comments

Comments are closed.