This is the documentation for Bamboo 5.8. View this page for the

Unknown macro: {spacejump}

of Bamboo, or visit the latest Bamboo documentation.

Bamboo は継続的インテグレーション (CI) サーバーであり、ソフトウェア アプリのリリース管理を自動化して、継続的なデリバリー パイプラインを構築するために使用されます。

これが意味すること

CI とは、コードがリポジトリにコミットされるたびに、ビルド、ユニット テスト、統合テストを実行、またはトリガーして、新しい変更が既存のコード ベースにうまく統合されることを確認するソフトウェア開発方法です。統合ビルドは、新しい変更の質について、早い段階で「フェイル ファスト」のフィードバックを提供します。

リリース管理とは、ソフトウェア アプリのリリースに向けて一般的に実行されるステップのことです。これには、ビルドと機能のテスト、リリースのタグ付け、バージョンの割り当て、本番環境での新しいバージョンのデプロイと有効化が含まれます。

CI の概要

Bamboo でどんな問題を解決できますか?

個人開発者の場合、Bamboo を使用すると次のような利点があります。

  • 自動化された、信頼性の高いビルドとテストのプロセスで、より多くのコーディングを自由に行えます。
  • 異なる要件やターゲットを持つビルドを管理する方法が提供されます。
  • App Store や Google Play などのサーバーに自動でデプロイします。

チームで Bamboo を使用する場合は、上記の利点に加えて、次のような利点があります。

  • ビルドとテストのプロセスが、特定のローカル環境に依存しません。
  • 開発者がコードをコミットすると、ただちにビルドと統合のテストが自動でトリガーされます (継続的インテグレーション)。

大規模で複雑なアプリを取り扱う際に Bamboo を使用すると、上記のすべての利点に加えて、次のような利点があります。

  • you can optimise build performance through parallelism.
  • エラスティック リソースを活用できます。
  • 継続的なデプロイを実行できます (例えばユーザー承認テスト (UAT) など)。
  • リリース管理を実装できます。

Bamboo はどのように機能しますか?

  • Bamboo は、すべての作業をスケジュールして調整する中央管理サーバーです。
  • Bamboo 自体に、さまざまなタイプの作業のためのインターフェイスとプラグインが用意されています。

  • まず、Bamboo はソース リポジトリからソースを取得します (ここではさまざまなシステム用プラグインが多数用意されています)。

  • その後、Bamboo がビルドを開始します。これは、MSBuild などを呼び出して Visual Studio ソリューションをビルドするか、Maven でコンパイラーとリンカーなど、ユーザーが利用しているものを呼び出して実行されます。
  • ソリューションやプロジェクトがビルドされると、「アーティファクト」(実行可能なアプリ、設定ファイルなどのビルド結果) ができます。
  • ビルド アーティファクトでは、次のようなことも実行できます。
    • ZIP ファイルに圧縮して、どこかにコピーする。
    • インストール ビルダーを実行して、MSI を作成する。
    • テスト サーバーにインストールして、すべてが正常にインストールされたことを確認する。
  • Bamboo は、ビルドの設定やステータスの報告のための Web フロントエンドを提供します。

 

Bamboo には何が必要ですか?

Bamboo は、アプリの構築やテストに関連する作業をスケジュールして、調整します。したがって、Bamboo を使用するには、次がセットアップ済みである必要があります。

  • プロジェクトの完全なソース コードを含むコード リポジトリ
  • ビルド スクリプト
  • テスト スイート

一般的に、コードに変更をコミットしたユーザーが、その結果生じたビルド エラーをただちに修正する責任を持つと考えられます。

How is a Bamboo workflow organised?

Bamboo は、「ジョブ」と「タスク」を含む「プラン」という概念によって、ワークフロー内のアクションを設定/順序付けします。

プロジェクト
  • Has one, or more, plans.
  • Provides reporting (using the wallboard, for example) across all plans in the project.
  • 他のアプリへのリンクを提供します。
Plan
  • Has a single stage, by default, but can be used to group jobs into multiple stages.
  • 同じリポジトリを使用して順番に実行される一連の 1 つ以上のステージを処理します。
  • 既定のリポジトリを指定します。
  • Specifies how the build is triggered, and the triggering dependencies between the plan and other plans in the project.
  • Specifies notifications of build results.
  • Specifies who has permission to view and configure the plan and its jobs.
  • Provides for the definition of plan variables.
段階
  • Has a single job, by default, but can be used to group multiple jobs.
  • Processes its jobs in parallel, on multiple agents (where available).
  • Must successfully complete all its jobs before the next stage in the plan can be processed.
  • May produce artifacts that can be made available for use by a subsequent stage.
ジョブ
  • Processes a series of one or more tasks that are run sequentially on the same agent.
  • タスクが実行される順番を制御します。
  • Collects the requirements of individual tasks in the job, so that these requirements can be matched with agent capabilities.
  • Defines the artifacts that the build will produce.
  • 前のステージで生成されたアーティファクトのみを使用することができます。
  • Specifies any labels with which the build result or build artifacts will be tagged.
タスク

  • ソース コードのチェックアウト、Maven 目標の実行、スクリプトの実行、またはテスト結果の解析など、作業の小さな個別の単位です。
  • Is run sequentially within a job on a Bamboo working directory.

  • ラベルなし