Github Actions を用いて Cloud Functions for Firebase のコードをデプロイする方法のメモです。
前提
Cloud Functionsのプロジェクトは既に作成済みとします。
手順
Firebase の project-id と token を入手する
-
project-id
はプロジェクト作成後の.firebaserc
に書かれているものです。 -
token
はfirebase login:ci
をローカルで実行すると表示されます。
$ firebase login:ci
Waiting for authentication...
✔ Success! Use this token to login on a CI server:
"ここにtokenが表示されます"
Example: firebase deploy --token "$FIREBASE_TOKEN"
Actions secrets の設定
先ほど取得した project-id
と token
を Github の Actions secrets に設定します。
Workflow の設定ファイルの作成
リポジトリの.github/workflows
ディレクトリにfirebase-deploy.yml
というファイルを作成します。
name: Firebase Deploy
on:
push:
branches:
- main
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install npm packages
run: |
cd functions
npm install
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only functions
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
PROJECT_ID: ${{secrets.FIREBASE_PROJECT_ID}}
github-action-for-firebaseという firebase-tools用のActionを使っています。
args
には firebase cli に使用する引数を指定します。ここではdeploy --only functions
を指定しています。
あとはmain
ブランチへマージされると GitHub Actions が走り、Cloud Functions へデプロイされます!
参考