setup-firebase-hosting
Installation
SKILL.md
setup-firebase-hosting
静的サイト(SSG 出力・SPA・LP など)を Firebase Hosting へ公開し、main への push で自動デプロイされる状態までを構築します。
公開先は Spark プラン(請求先アカウント未紐付け)を既定とします。 請求手段が存在しないため、アクセスが集中しても課金が発生しません。
前提条件
必須:
gcloudCLI(未導入ならbrew install --cask google-cloud-sdk。PATH は/opt/homebrew/share/google-cloud-sdk/bin)ghCLI(認証済み)- Node.js(
npx firebase-toolsを使う)。firebase-toolsは固定版(FIREBASE_TOOLS_VERSION)で実行する。値と更新手順は「firebase-tools のバージョン固定と更新手順」節を参照 - 対象リポジトリが GitHub 上にあること
${SA_ID}@${PROJECT_ID}.iam.gserviceaccount.com(既定SA_ID=github-actions-hosting)は本スクリプトが作成・管理する専用サービスアカウントとし、他用途と共有しないこと(description は発行記録として本スクリプトが占有する)。 管理対象かどうかは email の一致ではなく description の管理証跡(マーカー)で判定する。新規作成した SA には作成直後に証跡を設定し、証跡の無い既存 SA に対しては description の上書き・鍵の管理へ進まず fail-closed で停止する(本スクリプト専用として引き受ける場合のみADOPT_EXISTING_SA=trueで明示的に採用する)。鍵の自動ローテーション(後述)の削除対象は「この SA の description(GCP 側の発行記録)に記録された鍵」だけに限定され、記録に無い鍵は削除されず一覧表示に留まる(fail-safe)
対象サイトの条件: