自動ロールアウトが有効になっている場合、GitHub リポジトリの ライブブランチに新しい commit を push するたびに、App Hostingによってアプリの 新しいバージョンが自動的にロールアウトされます。ロールアウトのステータスは、 Firebase コンソールまたは App Hosting GitHub チェックで確認できます。
また、App Hosting では、 CI/CD 統合や、ロールアウトを強制的に実行する場合など、手動でトリガーされるロールアウトもサポートしています。
ロールアウトを表示する
Firebase コンソールでは、アプリのすべての ロールアウトに関する詳細情報にアクセスできます。
[**Hosting & Serverless**]> [**App Hosting**], ロールアウトを表示するバックエンドの [**表示**]を選択します。バックエンドの [ロールアウト] タブに、このバックエンドのすべてのロールアウトの履歴が一覧表示されます。
各ロールアウト エントリには、Cloud Build ジョブと ロールアウトをトリガーした変更または commit へのリンクが含まれています。また、作成者、作成日、ロールアウトのステータスに関する基本情報 も含まれています。
- Cloud Build ジョブは、App Hosting がアプリのビルドコマンドを実行する ビルド環境です。ビルド ID をクリックすると、Cloud Build ログにアクセスできます。
- [変更] は、ロールアウトをトリガーした GitHub commit またはその他のアクションです。
手動でロールアウトをトリガーする
新しい commit を push せずに GitHub ソースから手動でロールアウトをトリガーする場合は、Firebase コンソールまたは Firebase CLI からロールアウトを作成できます。これは、次のような場合に便利です。
- 静的コンテンツの再生成を強制する。
- CI/CD システムでロールアウトをトリガーできるようにする。
- 本番環境のロールアウトを特定の日付または時間に制限する。
Firebase コンソールでロールアウトをトリガーするには:
- Firebase コンソールで、[**Hosting / Serverless**] > [**App Hosting**] に移動します。
- ロールアウトを作成するバックエンドの [表示] をクリックします。
- バックエンド ダッシュボードの概要で、[ロールアウトを作成] を選択します。
- デプロイするブランチを選択します。
- デプロイする commit を選択します。最新の commit または commit ID で指定された以前の commit を選択できます。
- [作成] を選択します。ロールアウトのステータスとビルド番号がロールアウト履歴テーブルに表示されます。ロールアウト プロセスが完了すると、このロールアウトが現在のロールアウトとして表示されます。
Firebase CLI でロールアウトをトリガーするには、次のコマンドを実行し、 プロンプトが表示されたらロールアウトのブランチを選択します。
firebase apphosting:rollouts:create BACKEND_ID
または、--git-branch オプションを使用して、特定のブランチの最新の commit のロールアウトを開始することもできます。
firebase apphosting:rollouts:create BACKEND_ID
--git_branch BRANCH_NAME
--git-commit オプションを使用して、特定の commit でロールアウトを作成することもできます。
firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID
以前のロールアウトを復元する
App Hosting では、以前のロールアウトを復元する方法が 2 つあります。
- 再構築せずに即座にロールバックする
- 再構築して以前のバージョンにロールバックする
即時ロールバックを作成する
アプリの古いバージョンにすばやく戻す必要がある場合があります。たとえば、新しくデプロイしたロールアウトで重大なバグが発見された場合や、新しいロールアウトをブロックする不安定なビルドが発生している場合などです。このような場合は、以前のロールアウトから既存のコンテナ イメージを復元できます。このイメージは再構築されませんが、最初にビルドされたときのコードと環境構成が使用されます。
即時ロールバックを作成するには:
- Firebase コンソールで、[**Hosting / Serverless**] > [**App Hosting**] に移動します。
- ロールバックを作成するバックエンドの [表示] をクリックします。
- [ロールアウト] タブを選択します。
- バックエンドの [履歴] テーブルで、以前のビルドのその他メニューを選択します。
- [このビルドにロールバックする] を選択して確定します。
再構築してロールバックする
アプリの古いバージョンに戻したいが、現在の構成は維持したい場合は、ロールバック プロセスの一環としてアプリを再構築できます。たとえば、最新バージョンで Secret Manager の API キーの値が更新された場合、再構築することで、ロールバック後にアプリで新しいキーが使用されるようにできます。
再構築してロールバックするには:
- Firebase コンソールで、[**Hosting / Serverless**] > [**App Hosting**] に移動します。
- ロールバックを作成するバックエンドの [ダッシュボードを表示] をクリックします。
- [ロールアウト] タブを選択します。
- [ロールアウトを作成] を選択します。
- [ロールアウトを作成] ダイアログで、[以前の commit] を選択し、再構築してロールバックするバージョンの commit ID を入力します。commit ID は、[ロールアウト履歴] に表示される各ロールアウトの [変更の詳細] の一部で、ラベルのカッコ内に含まれています。
- [作成] を選択してロールバックを開始します。
ロールアウト設定を変更する
ロールアウトのライブブランチを変更したり、バックエンドのダッシュボードの [設定 > デプロイメント] ビューのコントロールを使用して自動ロールアウトを無効または有効にしたりできます。
- Firebase コンソールで、[**Hosting / Serverless**] > [**App Hosting**] に移動します。
- ロールアウト設定を更新するバックエンドの [表示] をクリックします。
- バックエンド ダッシュボードで [設定] を選択します。デフォルト ビューには、ドメインとカスタム ドメインに関する情報が表示されます。
- [デプロイメント] ビューを選択します。このビューでは、ロールアウトのライブブランチを変更したり、自動ロールアウトを無効または有効にしたりできます。また、 アプリのルート ディレクトリとバックエンドの環境を設定するオプションもあります( 複数の環境にデプロイするをご覧ください)。