cre*_*lus 9 github firebase reactjs firebase-hosting github-actions
我有一个 React 应用程序,它利用 Firebase 提供的自动部署 Github 操作。我的问题是,我没有将文件推送到 Github,因此当工作流脚本文件在 Github 操作中.env运行时,我的代码中没有内置环境变量。yarn build
我尝试通过在存储库的 Github 设置上设置变量来解决这个问题。我尝试了 Github 秘密(在“操作”下)和“环境”。
对于操作 -> 存储库机密,我设置了一个名为 的机密REACT_APP_GOOGLE_MAPS_API_KEY,并将以下脚本添加到我的steps:
REACT_APP_GOOGLE_MAPS_API_KEY=${{secrets.REACT_APP_GOOGLE_MAPS_API_KEY}} yarn && yarn build
Run Code Online (Sandbox Code Playgroud)
然后我还创建了一个名为 的环境env,并在操作 -> 环境机密上添加了相同的环境,并将脚本更改为:
REACT_APP_GOOGLE_MAPS_API_KEY=${{env.REACT_APP_GOOGLE_MAPS_API_KEY}} yarn && yarn build
Run Code Online (Sandbox Code Playgroud)
这些都不起作用;环境变量没有捆绑到项目中,当我尝试在实时链接上加载地图时,由于“缺少 api 密钥”,我收到错误。
如何在 github 中设置秘密/变量,然后在我的工作流程脚本中使用它们?
作为参考,这是您从 firebase 获得的样板脚本:
REACT_APP_GOOGLE_MAPS_API_KEY=${{secrets.REACT_APP_GOOGLE_MAPS_API_KEY}} yarn && yarn build
Run Code Online (Sandbox Code Playgroud)
Dav*_*uel 11
您可以在三个级别定义环境变量:
工作流程:在整个工作流程中可用。
name: Deploy to Firebase Hosting on PR
on: pull_request
env:
REACT_APP_GOOGLE_MAPS_API_KEY: ${{ secrets.REACT_APP_GOOGLE_MAPS_API_KEY }}
jobs:
build_and_preview:
...
Run Code Online (Sandbox Code Playgroud)
工作:在工作的所有步骤中都可用。
name: Deploy to Firebase Hosting on PR
on: pull_request
jobs:
build_and_preview:
if: "${{ github.event.pull_request.head.repo.full_name == github.repository }}"
runs-on: ubuntu-latest
env:
REACT_APP_GOOGLE_MAPS_API_KEY: ${{ secrets.REACT_APP_GOOGLE_MAPS_API_KEY }}
steps:
...
Run Code Online (Sandbox Code Playgroud)
步骤:仅在作业中的特定步骤中可用。
name: Deploy to Firebase Hosting on PR
on: pull_request
jobs:
build_and_preview:
if: "${{ github.event.pull_request.head.repo.full_name == github.repository }}"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: yarn && yarn build
env:
REACT_APP_GOOGLE_MAPS_API_KEY: ${{ secrets.REACT_APP_GOOGLE_MAPS_API_KEY }}
Run Code Online (Sandbox Code Playgroud)
对于您的情况,由于您只需要在 期间使用 API 密钥yarn build,因此在该步骤中声明它将是最佳选择。
参考: https: //docs.github.com/es/actions/learn-github-actions/environment-variables
| 归档时间: |
|
| 查看次数: |
8026 次 |
| 最近记录: |