ブランチからのデプロイ
ブランチ デプロイとは
ブランチは開発プロセスにおける重要なツールであり、ソフトウェア プロジェクトのさまざまな側面で開発者を孤立して作業できるようにする非常に強力な方法を提供します。
計画ブランチは、バージョン管理システム内のブランチ用のビルドを表します。計画ブランチは、親計画で定義された設定すべてを継承します。作成された新しいブランチは、親と同じビルド設定を使用して自動的にビルドおよびテストされます。計画ブランチのビルドが成功すると、自動または手動でマスターにマージして戻すことができます。
ブランチ デプロイは、ユーザーが任意の計画ブランチからデプロイ リリースを作成できるようにすることで、計画ブランチを拡張します。
Learn more about branching strategies: Bamboo Best Practice - Branching and DVCSOn this page:
ブランチ デプロイを使うべき理由
Bamboo のデプロイでは、機能コードがマスターにマージして戻される前に、計画ブランチをリスクの低いテスト環境にデプロイできます。つまり、開発者が変更をマスターにマージして戻す前に、機能コードを実際のサーバー環境で入念にテストして評価することが可能です。
開発者は、進行中の開発コードをマスター コードと分けながら、デプロイ可能な環境内でそのコードをテストしたい場合、ブランチ デプロイを使用することを検討する必要があります。
デプロイ リリースとデプロイ リリースの仕組みに関する詳細をご確認ください。
以下の図は、典型的なデプロイ ブランチの例を示しています。
- 開発者がマスターから新しいブランチを作成すると、Bamboo の新しいブランチ用に計画ブランチが自動的に作成されます。
- 開発者がブランチに対してコードをコミットすると、計画ブランチは自動的に変更をビルドします。
- ビルドが成功したら、ビルド #3 と#4 の結果をテスト環境にデプロイして入念なテストを実施します。
- テストすべてに合格したら、開発者は手動で機能ブランチをマスターにマージして戻します。
- これで、新しい機能を備えた変更がマスターに適用されました。新しいリリースを作成してメインライン環境にデプロイできます (QA、ステージング、本番など)。
ブランチ デプロイのユースケース
ブランチ デプロイをトリガーする環境は、安全なテスト環境に限定されます。ステージング、QA、本番など、本稼働のような環境ではトリガーしないでください。
デプロイ プロジェクトの作成と構成に関する詳細をご確認ください。
ブランチ デプロイを管理する一般的な戦略は 2 つあります。
- 手動でのブランチ デプロイ
- 自動ブランチ デプロイ
それぞれの戦略を詳しく見ていきましょう。
手動でのブランチ デプロイ
開発者が計画ブランチを使用して製品の新機能に取り組んでいるとします。現状の開発段階では、新しいコードをサーバー環境でテストする必要があります。
- 開発者は Bamboo を使用してコードのビルドとテストに成功します。これをビルド #1 と呼びます。
- ビルドが成功したら、Build #1 の新しいリリースを作成して、それをテスト環境にデプロイすることで、デプロイの準備が整います。
- デプロイすると、開発者は新しいコードを入念にテストします。テストすべてに合格したら、開発者は変更をマスターにマージして戻すことができます。
手動でデプロイを開始する方法の詳細をご確認ください。
自動ブランチ デプロイ
計画ブランチを使用して製品の新機能に取り組んでいる別の開発者について考えてみましょう。この開発者は、手動でトリガーされないように、ブランチ デプロイを自動化することにしました。
- 開発者は、作業中の新しいコードを含め、コードのビルドに成功します。これをビルド #2 と呼びます。
- 開発者は手動でデプロイしたくないので、Bamboo の自動トリガーを使用して、計画ブランチをデプロイ テスト環境にデプロイする戦略を設定します。次の 2 つのオプションがあります。
- Bamboo の cron ベースのスケジューリングを使用して、指定された日時にデプロイする。
- ビルド計画が正常に完了したら、Bamboo を使用してデプロイをトリガーする。
- Bamboo の cron ベースのスケジューリングを使用して、指定された日時にデプロイする。
- 開発者は、作業の慣行に最も合うトリガー戦略を設定します。トリガーに達すると、計画ブランチのビルドがテスト環境にデプロイされます。
- デプロイすると、開発者は新しいコードを入念にテストします。テストすべてに合格したら、開発者は変更をマスターにマージして戻すことができます。
考慮事項: 計画ブランチのコードをマスターにマージして戻すには、ブランチ機能コードのテストが正常に完了する必要があります。
デプロイ環境のトリガーに関する詳細をご確認ください。