ロールアウトとリリースを管理する

自動ロールアウトが有効になっている場合、GitHub リポジトリの公開ブランチに新しい commit を push するたびに、App Hosting によって新しいバージョンのアプリが自動的にロールアウトされます。ロールアウトのステータスは、Firebase コンソールまたは App Hosting GitHub チェックで確認できます。

また、App Hosting は、CI/CD インテグレーションや、ロールアウトを強制する必要があるその他のケースで、手動でトリガーされるロールアウトをサポートしています。

ロールアウトを表示する

Firebase コンソールでは、アプリのすべてのロールアウトに関する詳細情報を確認できます。App Hosting で、ロールアウトを確認するバックエンドの [表示] を選択します。バックエンドの [ロールアウト] タブには、このバックエンドのすべてのロールアウトの履歴を示す表が表示されます。

各ロールアウト エントリには、Cloud Build ジョブとロールアウトをトリガーした変更または commit へのリンク、作成者に関する基本情報、ロールアウトの作成日、ステータスが含まれています。

  • Cloud Build ジョブは、App Hosting がアプリのビルドコマンドを実行するビルド環境です。ビルド ID をクリックすると、Cloud Build ログにアクセスできます。
  • [変更] は、ロールアウトをトリガーした GitHub の commit またはその他のアクションです。

ロールアウトを手動でトリガーする

新しい commit を push せずに GitHub ソースからロールアウトを手動でトリガーする場合は、Firebase コンソールまたは Firebase CLI からロールアウトを作成できます。これは、次のような場合に役立ちます。

  • 静的コンテンツの強制再生成。
  • CI/CD システムがロールアウトをトリガーできるようにする。
  • 本番環境へのロールアウトを特定の日時までに制限する。

Firebase コンソールでロールアウトをトリガーするには:

  1. App Hosting で、ロールアウトを作成するバックエンドの [表示] を選択します。
  2. バックエンド ダッシュボードの概要で、[ロールアウトを作成] を選択します。
  3. デプロイするブランチを選択します。
  4. デプロイする commit を選択します。最新の commit または commit ID で指定された以前の commit のいずれかです。
  5. [作成] を選択します。ロールアウトのステータスとビルド番号がロールアウト履歴テーブルに表示されます。ロールアウト プロセスが完了すると、このロールアウトが現在のロールアウトとして表示されます。

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 つがあります。

  • 再ビルドせずに即座にロールバックする
  • 再ビルドして以前のバージョンにロールバックする

即時ロールバックを作成する

新しくデプロイされたロールアウトで重大なバグが見つかった場合や、新しいロールアウトをブロックしている不安定なビルドが発生した場合など、アプリの古いバージョンに迅速に復元する必要がある場合があります。このような場合は、以前のロールアウトから任意の既存のコンテナ イメージを復元できます。このイメージは再ビルドされず、最初にビルドされたときのコードと環境構成が使用されます。

即時ロールバックを作成するには:

  1. App Hosting で、ロールバックを作成するバックエンドの [表示] を選択します。
  2. [ロールアウト] タブを選択します。
  3. バックエンドの [履歴] テーブルで、以前のビルドのその他メニューを選択します。
  4. [このビルドにロールバック] を選択して確定します。

再構築とロールバック

古いバージョンのアプリに戻す際に現在の構成を維持する場合は、ロールバック プロセスの一部としてアプリを再ビルドできます。たとえば、最新バージョンで Secret Manager の API キー値が更新された場合、再ビルドすることで、ロールバック後にアプリで新しいキーが使用されるようにできます。

再ビルドしてロールバックするには:

  1. App Hosting で、ロールバックを作成するバックエンドの [ダッシュボードを表示] を選択します。
  2. [ロールアウト] タブを選択します。
  3. [ロールアウトを作成] を選択します。
  4. [ロールアウトを作成] ダイアログで [以前の commit] をオンにして、再ビルドしてロールバックするバージョンの commit ID を入力します。コミット ID は、ロールアウト履歴に表示される各ロールアウトの [変更の詳細] に含まれ、ラベル内にかっこで囲まれて表示されます。
  5. [作成] を選択してロールバックを開始します。

ロールアウト設定を変更する

ロールアウトのライブブランチを変更し、バックエンドのダッシュボードの [設定 > Deployment] ビューのコントロールを使用して自動ロールアウトを有効または無効にできます。

  1. App Hosting で、ロールアウト設定を更新するバックエンドの [表示] を選択します。
  2. バックエンド ダッシュボードで [設定] を選択します。デフォルト ビューには、ドメインとカスタム ドメインに関する情報が表示されます。
  3. [Deployment] ビューを選択します。このビューでは、ロールアウトの公開ブランチを変更したり、自動ロールアウトを有効または無効にしたりできます。また、アプリのルート ディレクトリとバックエンドの環境を設定することもできます(複数の環境にデプロイするをご覧ください)。