1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub ActionsでDeployしたら「Error: firebase use must be run from a Firebase project directory.」と言われた

Posted at

はじめに

今回はGitHub ActionsでDeploy時に起きたエラーについて書いていきます。

問題

エラーメッセージ
Error: firebase use must be run from a Firebase project directory.

Run firebase init to start a project directory in the current folder.

Error: Process completed with exit code 1.

スクリーンショット 2025-01-26 2.24.08.png

main.yml
  # デプロイジョブ - ビルド完了後に実行
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    needs: [build] # ビルドジョブの完了を待つ
    steps:
      # ソースコードのチェックアウト
      - name: Checkout code
        uses: actions/checkout@v3

      # Node.js環境のセットアップとキャッシュの設定
      - name: Setup Node.js and cache
        uses: actions/setup-node@v3
        with:
          node-version: "18"
          cache: "npm"

      # Firebase CLIツールのインストール
      - name: Install firebase-tools
        run: npm install --save-dev firebase-tools

      # Firebaseサービスアカウントキーのデコードと環境変数の設定
      - 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
                  
      # Firebaseプロジェクトの切り替え
      - name: change space
        run: ./node_modules/.bin/firebase use ${{ secrets.FIREBASE_PROJECT_ID }}

      # Firebaseへのデプロイ実行
      - name: Deploy to Firebase Hosting
        env:
          # デプロイに必要な環境変数の設定
          GOOGLE_APPLICATION_CREDENTIALS: ${{ github.workspace }}/firebase-key.json
          FIREBASE_CLI_EXPERIMENTS: webframeworks
        run: |
          ./node_modules/.bin/firebase deploy
          
      # クリーンアップ:認証情報ファイルの削除
      # always()を使用して、ジョブが失敗しても必ず実行
      - name: delete GOOGLE_APPLICATION_CREDENTIALS
        run: rm $GOOGLE_APPLICATION_CREDENTIALS
        if: ${{ always() }}

解決方法

main.yml
  # デプロイジョブ - ビルド完了後に実行
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    needs: [build] # ビルドジョブの完了を待つ
    steps:
      # ソースコードのチェックアウト
      - name: Checkout code
        uses: actions/checkout@v3

      # Node.js環境のセットアップとキャッシュの設定
      - name: Setup Node.js and cache
        uses: actions/setup-node@v3
        with:
          node-version: "18"
          cache: "npm"

      # Firebase CLIツールのインストール
      - name: Install firebase-tools
        run: npm install --save-dev firebase-tools

      # Firebaseサービスアカウントキーのデコードと環境変数の設定
      - 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
          
+     # Firebaseプロジェクトを初期化
+     - name: Initialize Firebase project
+       run: ./node_modules/.bin/firebase init
        
      # Firebaseプロジェクトの切り替え
      - name: change space
        run: ./node_modules/.bin/firebase use ${{ secrets.FIREBASE_PROJECT_ID }}

      # Firebaseへのデプロイ実行
      - name: Deploy to Firebase Hosting
        env:
          # デプロイに必要な環境変数の設定
          GOOGLE_APPLICATION_CREDENTIALS: ${{ github.workspace }}/firebase-key.json
          FIREBASE_CLI_EXPERIMENTS: webframeworks
        run: |
          ./node_modules/.bin/firebase deploy
          
      # クリーンアップ:認証情報ファイルの削除
      # always()を使用して、ジョブが失敗しても必ず実行
      - name: delete GOOGLE_APPLICATION_CREDENTIALS
        run: rm $GOOGLE_APPLICATION_CREDENTIALS
        if: ${{ always() }}

おわりに

エラーメッセージでRun firebase init to start a project directory in the current folder.(現在のフォルダーでプロジェクトディレクトリを開始するには、firebase init を実行します。)と言われたのでFirebaseプロジェクトの初期化をするコードを追加してこのエラーは解決出来ました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?