くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

GitHub Actions+OIDCでFirebase Hostingにデプロイする(Node.js)

前回の続き。

www.memory-lovers.blog

OIDCでGitHub Actions内でgcloudコマンドが使えるようになったので、
firebase CLI(firebase-tools)もできるようにしたいなと調べたときの備忘録(*´ω`*)


firebase-toolsとgoogle-github-actions/authのドキュメントを見てみると、

  • firebase-toolsは、GOOGLE_APPLICATION_CREDENTIALSをつかう
  • google-github-actions/auth@v1は、GOOGLE_APPLICATION_CREDENTIALSを設定する

なので、そのまま使えるっぽい(*´ω`*)

name: "[MAIN] Deploy"
"on":
  push:
    branches:
      - main
  workflow_dispatch:

env:
  SERVICE_ACCOUNT: "YOUR_SERVICE_ACCOUNT_EMAIL"
  PROVIDER: "YOUR_WORKLOAD_IDENTITY_PROVIDER"

jobs:
  build_and_deploy_dev:
    runs-on: ubuntu-latest
    # Add "id-token" with the intended permissions.
    permissions:
      id-token: write
      contents: read
    steps:
      # actions/checkout MUST come before auth
      - uses: actions/checkout@v3

      # Configure Workload Identity Federation via a credentials file.
      - uses: google-github-actions/auth@v1
        with:
          service_account: ${{ env.SERVICE_ACCOUNT }}
          workload_identity_provider: ${{ env.PROVIDER }}

      - run: firebase deploy --only hosting

あとは、利用するサービスアカウントに適切なロールを割り当てればOK

OIDC認証時に設定される環境変数

google-github-actions/auth@v1で、
以下の環境変数を設定してくれるらしい。

CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE
GOOGLE_APPLICATION_CREDENTIALS
GOOGLE_GHA_CREDS_PATH
CLOUDSDK_CORE_PROJECT
CLOUDSDK_PROJECT
GCLOUD_PROJECT
GCP_PROJECT
GOOGLE_CLOUD_PROJECT

Firebase CLIの認証


以上!! OIDCって便利(´ω`)

参考にしたサイト様