はじめに
CI/CDの実現にかなり苦戦したので、手順とどこで詰まったのかを残しておこうと思います
実現したかったこと
- push時、GithubActionsから自動でビルド・デプロイされること
前提
- Firebaseのプロジェクトは作成済みであること
- 今回は手動デプロイが出来る段階から開始しています(以下の記事を参照)
手順
認証周りの設定
- GoogleCloudでサービスアカウントを作成
-
FirebaseDevelop管理者
のロールを割り当てる
-
- 作成したサービスアカウントの鍵を
FIREBASE_KEY
としてGithubに登録
こちらの記事の2までを参考に進めました
GithubActionsのワークフローを設定
- ワークフローを記載する
-
FIREBASE_TOKEN
を作成し、Githubに登録する
プッシュしてみる
- buildとdeployが行えているかGithubActionsで確認
詰まったポイント
1. Googleのアカウントが途中で切り替わっていた
- FirebaseDevelop管理者のアカウントではなく、オーナーロールのGoogleアカウントでログインしていることになっていた
Error: Failed to get Firebase project study-record-****. Please make sure the project exists and your account has permission to access it.
ログインし直して解消しました
2. ワークフローの--project=
でFirebaseのプロジェクトIDではなくプロジェクト名を設定していた
// プロジェクト名であるstudy-recordを設定してた故のエラー
Error: Failed to get Firebase project study-record. Please make sure the project exists and your account has permission to access it.
3. 非推奨となった古い書き方をしていた
ワークフローでfirebase deploy --token $FIREBASE_TOKEN
と記載すると、今は推奨していないよと警告が出てdeployが失敗しました
書き方を変えて解消しました
- name: Deploy to Firebase
uses: joinflux/firebase-tools@v9.16.0
with:
args: deploy --project=study-record-*** --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}