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

3

我已经将包含Firebase Web API密钥的.env文件保存在我的本地工作目录中。 我在项目中使用它,如下所示:

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

现在我已经设置了Firebase托管,并使用GitHub操作,当更改被推送到GitHub时自动部署。
但是由GitHub部署的应用程序在我的控制台中给出错误信息,您的API密钥无效,请检查是否正确复制了它。由于缺少api密钥,我的应用程序将无法正常工作。
似乎github操作无法访问process.env.REACT_APP_API_KEY
我感觉问题在于
.env文件未推送到Github仓库,因此我的构建服务器无法访问process.env.REACT_APP_API_KEY命令。

我该如何解决这个问题?
在设置Firebase托管时自动设置了Github工作流程。 这是错误,还是还有其他要注意的地方?
下面是我的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
为什么不在您的工作流程中创建一个.env文件呢?就像这样:https://dev59.com/wlIH5IYBdhLWcg3wUMB6 - soltex
1个回答

3
一个快速的解决方案是在 GitHub Actions 中添加一个步骤,在需要使用 .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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接