Github 操作 - 工作流无法访问环境变量

时间:2021-02-18 10:21:41

标签: continuous-integration environment-variables continuous-deployment github-actions firebase-hosting

我将 .env file 与 Firebase Web API 密钥一起保存在我的本地工作目录中。 我在我的项目中使用它作为

const firebaseConfig = {
       apiKey : process.env.REACT_APP_API_KEY,
}

现在我设置了 firebase 托管并使用 GitHub 操作在更改推送到 GitHub 时自动部署。
然而,github 部署的应用程序在我的控制台中给了我一个错误,说 Your API key is invalid, please check you have copied it correctly 。而且我的应用程序将无法工作,因为它缺少 api 密钥。
似乎 github 操作无法访问 process.env.REACT_APP_API_KEY
我觉得问题是
由于 .env 文件未推送到 github 存储库,这就是为什么我的构建服务器无法访问命令 process.env.REACT_APP_API_KEY

我该如何解决这个问题?
Github 工作流程是在设置 firebase 托管时自动设置的。 这是错误还是有其他需要注意的地方?
下面是我的firebase-hosting-merge.yml

# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools

name: Deploy to Firebase Hosting on merge
'on':
  push:
    branches:
      - master
jobs:
  build_and_deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: npm ci && npm run build --prod
      - uses: FirebaseExtended/action-hosting-deploy@v0
        with:
          repoToken: '${{ secrets.GITHUB_TOKEN }}'
          firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_EVENTS_EASY }}'
          channelId: live
          projectId: myprojectname
        env:
          FIREBASE_CLI_PREVIEWS: hostingchannels

如何让我的 .env 文件变量可以被 github 构建服务器访问? 我需要更改我的 firebaseConfig 吗?或者有什么方法可以让我的 .env 文件可用于构建服务器,然后在构建完成后将其删除?

const firebaseConfig = {
     apiKey : process.env.REACT_APP_API_KEY,
}

1 个答案:

答案 0 :(得分:1)

这里的一个快速解决方案可能是在 github 操作中执行一个步骤,以便在您需要之前手动创建 .env 文件。

- name: Create env file
        run: |
          touch .env
          echo API_ENDPOINT="https://xxx.execute-api.us-west-2.amazonaws.com" >> .env
          echo API_KEY=${{ secrets.API_KEY }} >> .env
          cat .env