自動ロールアウトが有効になっている場合、GitHub リポジトリの公開ブランチに新しい commit を push するたびに、App Hosting によって新しいバージョンのアプリが自動的にロールアウトされます。ロールアウトのステータスは、Firebase コンソールまたは App Hosting GitHub チェックで確認できます。
また、App Hosting は、CI/CD インテグレーションや、ロールアウトを強制する必要があるその他のケースで、手動でトリガーされるロールアウトをサポートしています。
ロールアウトを表示する
Firebase コンソールでは、アプリのすべてのロールアウトに関する詳細情報を確認できます。[App Hosting] タブで、ロールアウトを確認するバックエンドの [ダッシュボードを表示] を選択します。ダッシュボードには、現在のロールアウトに関する情報と、このバックエンドのすべてのロールアウトの履歴を示す表が表示されます。
各ロールアウトには、git commit、Cloud Build ジョブ、Cloud Run リビジョンが含まれています。
- git commit は、ロールアウトの作成時点でのリポジトリのスナップショットです。
- Cloud Build ジョブは、App Hosting がアプリのビルドコマンドを実行するビルド環境です。Cloud Build ログには、Firebase コンソールでビルド ID をクリックしてアクセスできます。
- Cloud Run リビジョンは、Web アプリのランタイム環境です。ロールアウトのランタイム構成(CPU とメモリの上限、環境変数など)の詳細を確認するには、その他メニューをクリックして [Cloud Run リビジョンを表示] を選択します。
ロールアウトを手動でトリガーする
新しい commit を push せずに GitHub ソースからロールアウトを手動でトリガーする場合は、Firebase コンソールまたは Firebase CLI からロールアウトを作成できます。これは、次のような場合に役立ちます。
- 静的コンテンツの強制再生成。
- CI/CD システムがロールアウトをトリガーできるようにする。
- 本番環境へのロールアウトを特定の日時までに制限する。
Firebase コンソールでロールアウトをトリガーするには:
- [App Hosting タブ] で、ロールアウトを作成するバックエンドの [ダッシュボードを表示] を選択します。
- バックエンド ダッシュボードで、[Create rollout] を選択します。
- デプロイするブランチを選択します。
- デプロイする 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] タブで、ロールアウト設定を更新するバックエンドの [ダッシュボードを表示] を選択します。
- バックエンド ダッシュボードで [設定] を選択します。デフォルト ビューには、ドメインとカスタム ドメインに関する情報が表示されます。
- [Deployment] ビューを選択します。このビューでは、ロールアウトのライブブランチを変更したり、自動ロールアウトを有効または無効にしたりできます。また、アプリのルート ディレクトリとバックエンドの環境を設定することもできます(複数の環境にデプロイするをご覧ください)。