Я использую Firebase в React, и при инициализации Firebase я использую переменные среды, извлеченные из моего файла .env с dotenv
. Я хочу собрать и развернуть свое приложение React на хостинге Firebase, я использую GitHub Actions со следующим файлом рабочего процесса .yml:
name: Deploy
on:
push:
branches:
- master
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
- name: Archive Production Artifact
uses: actions/upload-artifact@master
with:
name: public
path: public
deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Download Artifact
uses: actions/download-artifact@master
with:
name: public
- name: Deploy
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
Однако мой шаг сборки завершается неудачно (т. Е. npm run build
), поскольку переменные среды не найдены Если я жестко закодирую значения вместо использования переменных среды, рабочий процесс будет успешным.
Нужно ли мне добавлять переменные среды в секреты GitHub, аналогично тому, как я добавил FIREBASE_TOKEN
на этапе развертывания, и добавлять их? в рабочем процессе что-то вроде:
name: Deploy
on:
push:
branches:
- master
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
env:
FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }}
FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }}
FIREBASE_DATABASE_URL: ${{ secrets.FIREBASE_DATABASE_URL }}
FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }}
FIREBASE_STORAGE_BUCKET: ${{ secrets.FIREBASE_STORAGE_BUCKET }}
FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}
FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
- name: Archive Production Artifact
uses: actions/upload-artifact@master
with:
name: public
path: public
deploy:
name: Deploy
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@master
- name: Download Artifact
uses: actions/download-artifact@master
with:
name: public
- name: Deploy
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
Я получаю ту же ошибку, говоря, что не могу найти токен API.
Когда я просматриваю файлы рабочего процесса в других основанных на Firebase Реагируйте на приложения, я не вижу никого, кто бы добавил эти переменные среды, как я предлагал. Как правильно обрабатывать переменные среды в приложениях, развернутых в Firebase? Они принадлежат на этапе сборки или развертывания?