Gatsby x Github Actions x Netlifyで環境変数を使う

2

目次

経緯と解決方法

Netlify でホスティングしている当ブログですが、ビルド時間がなかなかなので、GitHub Actions でビルドまで行うようにしていました。

そんで、今度は Firebase を使ってあれこれしたいなぁと思い、下記記事を参考に環境変数を設定していたのですが

またエラーが出るんですよね、projectId は string であるべき的な。

エラー
FirebaseError: projectId must be a string in FirebaseApp.options

Netlify で環境変数の設定はしているし、GATSBY_のプレフィックスも一応つけていたのですがどうもエラーが止まらないと。なんでかなぁと原因を探っていたら『お、そういえばビルドまで Github Actions で行ってんじゃん』と昔のことなんで忘れていたんですよね。

で、Github Actions で環境変数を設定しようとすると今度は

ターミナル
! [remote rejected] master -> master (refusing to allow an OAuth App to create or update workflow `.github/workflows/build.yml` without `workflow` scope)
error: failed to push some refs to 'https://github.com/9631kunn/myblog.git'

こんなエラーが。仕方ないのでブラウザで Github 開いてファイルを下記に編集。

build.yml
name: Build Gatsby and deploy to Netlify

on:
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions/setup-node@v1
        with:
          node-version: "12.x"
      - run: npm ci
      - run: npm run build
        env:
          GATSBY_FIREBASE_API_KEY: ${{ secrets.GATSBY_FIREBASE_API_KEY }}
          GATSBY_FIREBASE_AUTH_DOMAIN: ${{ secrets.GATSBY_FIREBASE_AUTH_DOMAIN }}
          GATSBY_FIREBASE_DATABASE_URL: ${{ secrets.GATSBY_FIREBASE_DATABASE_URL }}
          GATSBY_FIREBASE_PROJECT_ID: ${{ secrets.GATSBY_FIREBASE_PROJECT_ID }}
          GATSBY_FIREBASE_STORAGE_BUCKET: ${{ secrets.GATSBY_FIREBASE_STORAGE_BUCKET }}
          GATSBY_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.GATSBY_FIREBASE_MESSAGING_SENDER_ID }}
          GATSBY_FIREBASE_APP_ID: ${{ secrets.GATSBY_FIREBASE_APP_ID }}
          GATSBY_FIREBASE_MEASUREMENT_ID: ${{ secrets.GATSBY_FIREBASE_MEASUREMENT_ID }}

      - uses: netlify/actions/cli@master
        env:
          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
        with:
          args: deploy --dir=public --prod
          secrets: '["NETLIFY_AUTH_TOKEN", "NETLIFY_SITE_ID"]'

無事エラーが出ず、Firestore からデータを引っ張ってこれました。

どうでも後日談

今Gitpodからローカルサーバー立ててfirebase使用するページ開くとまた件のprojectId is~~のエラーが……。Gitpodで立てたローカルサーバーだとまた別途環境変数設定しなくちゃいけないぽそう。あ~ん

  • SNSでシェアしよう
  • Twitterでシェア
  • FaceBookでシェア
  • Lineでシェア
  • 記事タイトルとURLをコピー
トップへ戻るボタン

\ HOME /

トップへ戻る