はじめに
Github Actions上でのFirebaseのデプロイ自体は成功するがリモートマシン上に警告が表示されたので対応しました。
問題
以下の警告がGithubのリモートマシン上に表示される。
⚠ Authenticating with `FIREBASE_TOKEN` is deprecated and will be removed in a future major version of `firebase-tools`.
Instead, use a service account key with `GOOGLE_APPLICATION_CREDENTIALS`:
大まかに訳すと、「FIREBASE_TOKEN」を使った認証は非推奨だからやめてね、代わりに「GOOGLE_APPLICATION_CREDENTIALS」を使った認証の方法にしてね、という感じ。
警告発生時点でのymlの設定は以下の通り。
autoDeproy.yml(抜粋)
- name: Deploy to Firebase Hosting
run: |
./node_modules/.bin/firebase deploy
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
FIREBASE_CLI_EXPERIMENTS: webframeworks
以下のドキュメントを参考にしましたが、どうやらこの方法だとセキュリティ的にNGのようです(トークンが漏れたら第3者に好き放題される懸念)。
解決方法
ググったらGCPのサービスアカウントで適切な権限を設定する方法があるとのことなので、その通りに修正。
autoDeploy.yml(修正後)
autoDeploy.yml
name: Auto Deploy
on: push
jobs:
deploy:
runs-on: ubuntu-latest
env:
VITE_SUPABASE_URL: ${{secrets.SUPABASE_URL}}
VITE_SUPABASE_ANON_KEY: ${{secrets.SUPABASE_ANON_KEY}}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Run build
run: bun run build
- name: Install firebase-tools
run: bun install --save-dev firebase-tools
- name: Decode Firebase service account key
run: |
echo "${{ secrets.FIREBASE_KEY }}" | base64 -d > ./firebase-key.json
echo "GOOGLE_APPLICATION_CREDENTIALS=${{ github.workspace }}/firebase-key.json" >> $GITHUB_ENV
- name: change space
run: ./node_modules/.bin/firebase use ${{ secrets.FIREBASE_PROJECT_ID }}
- name: Deploy to Firebase Hosting
run: |
./node_modules/.bin/firebase deploy
env:
FIREBASE_CLI_EXPERIMENTS: webframeworks
- name: delete GOOGLE_APPLICATION_CREDENTIALS
run: rm $GOOGLE_APPLICATION_CREDENTIALS
if: ${{ always() }}
↑のようにファイルを修正後、pushすることで警告が消えました!素晴らしい…
おわりに
出来たからOK、動いたからOKという考えではなく、警告が出たときはちゃんと対応しようね!(自戒)
参考
JISOUのメンバー募集中
プログラミングコーチングJISOUではメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
気になる方はぜひHPからライン登録お願いします!