Bamboo CI サーバの概要
Bamboo は継続的インテグレーション (CI) サーバーであり、ソフトウェア アプリのリリース管理を自動化して、継続的なデリバリー パイプラインを構築するために使用されます。
これが意味すること
CI とは、コードがリポジトリにコミットされるたびに、ビルド、ユニット テスト、統合テストを実行、またはトリガーして、新しい変更が既存のコード ベースにうまく統合されることを確認するソフトウェア開発方法です。統合ビルドは、新しい変更の質について、早い段階で「フェイル ファスト」のフィードバックを提供します。
リリース管理とは、ソフトウェア アプリのリリースに向けて一般的に実行されるステップのことです。これには、ビルドと機能のテスト、リリースのタグ付け、バージョンの割り当て、本番環境での新しいバージョンのデプロイと有効化が含まれます。
On this page:
Bamboo でどんな問題を解決できますか?
個人開発者の場合、Bamboo を使用すると次のような利点があります。
- 自動化された、信頼性の高いビルドとテストのプロセスで、より多くのコーディングを自由に行えます。
- 異なる要件やターゲットを持つビルドを管理する方法が提供されます。
- App Store や Google Play などのサーバーに自動でデプロイします。
チームで Bamboo を使用する場合は、上記の利点に加えて、次のような利点があります。
- ビルドとテストのプロセスが、特定のローカル環境に依存しません。
- 開発者がコードをコミットすると、ただちにビルドと統合のテストが自動でトリガーされます (継続的インテグレーション)。
大規模で複雑なアプリを取り扱う際に Bamboo を使用すると、上記のすべての利点に加えて、次のような利点があります。
- 並列処理によってビルドのパフォーマンスを最適化できます。
- エラスティック リソースを活用できます。
- 継続的なデプロイを実行できます (例えばユーザー承認テスト (UAT) など)。
- リリース管理を実装できます。
Bamboo はどのように機能しますか?
- Bamboo は、すべての作業をスケジュールして調整する中央管理サーバーです。
Bamboo 自体に、さまざまなタイプの作業のためのインターフェイスとプラグインが用意されています。
まず、Bamboo はソース リポジトリからソースを取得します (ここではさまざまなシステム用プラグインが多数用意されています)。
- その後、Bamboo がビルドを開始します。これは、MSBuild などを呼び出して Visual Studio ソリューションをビルドするか、Maven でコンパイラーとリンカーなど、ユーザーが利用しているものを呼び出して実行されます。
- ソリューションやプロジェクトがビルドされると、「アーティファクト」(実行可能なアプリ、設定ファイルなどのビルド結果) ができます。
- ビルド アーティファクトでは、次のようなことも実行できます。
- ZIP ファイルに圧縮して、どこかにコピーする。
- インストール ビルダーを実行して、MSI を作成する。
- テスト サーバーにインストールして、すべてが正常にインストールされたことを確認する。
- Bamboo は、ビルドの設定やステータスの報告のための Web フロントエンドを提供します。
Bamboo には何が必要ですか?
Bamboo は、アプリの構築やテストに関連する作業をスケジュールして、調整します。したがって、Bamboo を使用するには、次がセットアップ済みである必要があります。
- プロジェクトの完全なソース コードを含むコード リポジトリ
- ビルド スクリプト
- テスト スイート
一般的に、コードに変更をコミットしたユーザーが、その結果生じたビルド エラーをただちに修正する責任を持つと考えられます。
Bamboo のワークフローはどのように整理されますか?
Bamboo は、「ジョブ」と「タスク」を含む「プラン」という概念によって、ワークフロー内のアクションを設定/順序付けします。
プロジェクト | |
Plan | |
段階 |
|
ジョブ | |
タスク |
|