Bamboo のステージを利用した継続的デリバリー

2012-01-11 (Wed)  •  By 伊藤  •  活用のヒント  •  Bamboo 翻訳

今回の記事は、Atlassian Bamboo に関するアトラシアン ブログ「Continuous Delivery with Bamboo Stages 」の弊社翻訳版です。原文と差異がある場合は、原文の内容が優先されます。

Bamboo の最大の強みは、開発者がテスティングから生産に至るまでワークフロー全体を制御できる点です。Bamboo では、ソフトウェアのリリースや展開などの難しいタスクを “継続的デリバリー” というプラクティスを使用して簡単に自動化できます。

継続的デリバリー

継続的デリバリーは、コード作成から展開までのすべての手順を完全に自動化するためのプロセスです。継続的デリバリー以前、ソフトウェアのリリースは不定期かつ手動によるプロセスで、エラーを起こしやすいものでした。それが、手順を自動化して時間短縮を図ることでチームはプロジェクトの重要な成果物に注力でき、ソフトウェアの出荷に伴う退屈な繰り返しのタスクを防ぐことができます。

ゴートゥーグループ ブログ : 作成、テスト、展開

ステージとは

ステージとはビルド内の個々の連続した手順です。ステージを使用するとビルドの自動化を コンパイルテスト、および 展開 などの複数の手順に分割できます。ステージを実行すると、ステージに属するすべてのジョブはビルドを開始し、ビルドを並列処理して実行時間を大幅に減らします。Bamboo のジョブはビルドの動作を定義する一連のタスクを実行します。タスクはスクリプトや Maven の目標を実行したり、Visual Studio のプロジェクトをビルドできます。

ジョブはテスト スイートを小さいバッチに分割するために使用でき、各ジョブは個々のバッチを並行して実行します。統合テストを分割することで何時間も容易に節約できます。以下のステージのジョブは、前のステージのすべてのジョブが正常に完了するまで実行を開始しません。この機能により、負荷の高い統合テストは負荷の低いユニット テストをパスした後にのみ実行されるようになります。例を以下に示します。

ゴートゥーグループ ブログ : ステージとジョブ

位置について、用意、出荷!

上の画像では、ビルドテスト展開 という 3 つのステージを定義しました。開発者がソース コードを保持する Git レポジトリにコミットすると、ビルド ステージとその単一の コンパイル ジョブが実行されます。

プロジェクトが正しくコンパイルされると、ビルドはテスト ステージに移行します。ここでは 1 つのコンピューターで 1 つのジョブのテストすべてを実行する代わりに、テストを複数のジョブに細分化します。Bamboo が テスト ステージの実行を開始すると、ステージ内のジョブがすべて一度にキューに登録されます。十分な空き リモート エージェント がある場合は、各ジョブは同時に並行して実行されます。今回の例では、このステージの実行にかかる時間は約 20 分です。ちなみに、全テストを 1 つのジョブにまとめると 1 時間はかかります。ジョブの並行処理はフィードバックをすぐに得るための非常に簡単かつすばやい方法です。

コミットのたびに Web サイトにリリースをアップロードしたくないため、弊社では 展開 ステージを手動で行うように設定しました。Bamboo が手動ステージに到達すると、実行が停止し、ビルドを再開するために手動のトリガーを待ちます。今回の例では、展開 ステージに達するとビルドが停止し、リリースするときに誰かが続行ボタンを押してビルドを続行する必要があります。

ゴーツーグループ ブログ : 最近の履歴

上の画像ではプロジェクトの最近 10 件のビルドの履歴が表示され、そのうち 8 件だけがリリース候補です。チームは変更をコミットし続けて Bamboo にテストを実行させます。スタートレックのピカード艦長ばりに「ではそうしてくれ」と言う段階で Bamboo は既に実稼働用のリリース準備を整えています。

次に行うこと


Related Articles

お気軽にお問い合わせください

お問い合わせ