日頃より、弊社をご愛顧いただきまして誠にありがとうございます。この度、ゴーツーラボ 株式会社が営むアトラシアン製品ライセンスの販売および SI サービスの提供事業をリックソフト 株式会社に譲渡することで合意し、事業譲渡契約を締結する運びとなりました。詳細については、「事業譲渡に関するお知らせ」をご参照ください。
2012-01-11 (Wed) • By 伊藤 • 活用のヒント • Bamboo 翻訳
Bamboo の最大の強みは、開発者がテスティングから生産に至るまでワークフロー全体を制御できる点です。Bamboo では、ソフトウェアのリリースや展開などの難しいタスクを “継続的デリバリー” というプラクティスを使用して簡単に自動化できます。
継続的デリバリーは、コード作成から展開までのすべての手順を完全に自動化するためのプロセスです。継続的デリバリー以前、ソフトウェアのリリースは不定期かつ手動によるプロセスで、エラーを起こしやすいものでした。それが、手順を自動化して時間短縮を図ることでチームはプロジェクトの重要な成果物に注力でき、ソフトウェアの出荷に伴う退屈な繰り返しのタスクを防ぐことができます。
ステージとはビルド内の個々の連続した手順です。ステージを使用するとビルドの自動化を コンパイル、テスト、および 展開 などの複数の手順に分割できます。ステージを実行すると、ステージに属するすべてのジョブはビルドを開始し、ビルドを並列処理して実行時間を大幅に減らします。Bamboo のジョブはビルドの動作を定義する一連のタスクを実行します。タスクはスクリプトや Maven の目標を実行したり、Visual Studio のプロジェクトをビルドできます。
ジョブはテスト スイートを小さいバッチに分割するために使用でき、各ジョブは個々のバッチを並行して実行します。統合テストを分割することで何時間も容易に節約できます。以下のステージのジョブは、前のステージのすべてのジョブが正常に完了するまで実行を開始しません。この機能により、負荷の高い統合テストは負荷の低いユニット テストをパスした後にのみ実行されるようになります。例を以下に示します。
上の画像では、ビルド、テスト、展開 という 3 つのステージを定義しました。開発者がソース コードを保持する Git レポジトリにコミットすると、ビルド ステージとその単一の コンパイル ジョブが実行されます。
プロジェクトが正しくコンパイルされると、ビルドはテスト ステージに移行します。ここでは 1 つのコンピューターで 1 つのジョブのテストすべてを実行する代わりに、テストを複数のジョブに細分化します。Bamboo が テスト ステージの実行を開始すると、ステージ内のジョブがすべて一度にキューに登録されます。十分な空き リモート エージェント がある場合は、各ジョブは同時に並行して実行されます。今回の例では、このステージの実行にかかる時間は約 20 分です。ちなみに、全テストを 1 つのジョブにまとめると 1 時間はかかります。ジョブの並行処理はフィードバックをすぐに得るための非常に簡単かつすばやい方法です。
コミットのたびに Web サイトにリリースをアップロードしたくないため、弊社では 展開 ステージを手動で行うように設定しました。Bamboo が手動ステージに到達すると、実行が停止し、ビルドを再開するために手動のトリガーを待ちます。今回の例では、展開 ステージに達するとビルドが停止し、リリースするときに誰かが続行ボタンを押してビルドを続行する必要があります。
上の画像ではプロジェクトの最近 10 件のビルドの履歴が表示され、そのうち 8 件だけがリリース候補です。チームは変更をコミットし続けて Bamboo にテストを実行させます。スタートレックのピカード艦長ばりに「ではそうしてくれ」と言う段階で Bamboo は既に実稼働用のリリース準備を整えています。