在部署到 firebase 托管之前,在 github 操作中设置环境变量
Set env variables in a github action before deploying to firebase hosting
我有一个 React 应用程序,它使用 Firebase 提供的自动部署 Github 操作。我的问题是我没有将我的 .env
文件推送到 Github,因此当工作流脚本文件在 [=35] 中运行 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
然后我还创建了一个名为 env
的环境,并在 actions -> environment secrets 上添加了相同的内容,并将脚本更改为:
REACT_APP_GOOGLE_MAPS_API_KEY=${{env.REACT_APP_GOOGLE_MAPS_API_KEY}} yarn && yarn build
这些都不起作用; env vars 没有捆绑到项目中,当我尝试在实时 link 上加载地图时出现错误,因为“缺少 api 键”。
如何在 github 中设置 secrets/variables 然后在我的工作流脚本中使用它们?
作为参考,这是您从 firebase 获得的样板脚本:
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 # I added my vars here, before `yarn` #
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: "${{ secrets.GITHUB_TOKEN }}"
firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_WEBPAGE_NAME }}"
projectId: webpage_name
您可以在三个级别定义环境变量:
工作流程:在整个工作流程中可用。
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:
...
作业:作业的所有步骤都可用。
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:
...
步骤: 仅在作业中的特定步骤中可用。
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 }}
对于您的情况,因为您在 yarn build
期间只需要 API 键,最好在步骤中声明它。
参考:https://docs.github.com/es/actions/learn-github-actions/environment-variables
我有一个 React 应用程序,它使用 Firebase 提供的自动部署 Github 操作。我的问题是我没有将我的 .env
文件推送到 Github,因此当工作流脚本文件在 [=35] 中运行 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
然后我还创建了一个名为 env
的环境,并在 actions -> environment secrets 上添加了相同的内容,并将脚本更改为:
REACT_APP_GOOGLE_MAPS_API_KEY=${{env.REACT_APP_GOOGLE_MAPS_API_KEY}} yarn && yarn build
这些都不起作用; env vars 没有捆绑到项目中,当我尝试在实时 link 上加载地图时出现错误,因为“缺少 api 键”。
如何在 github 中设置 secrets/variables 然后在我的工作流脚本中使用它们?
作为参考,这是您从 firebase 获得的样板脚本:
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 # I added my vars here, before `yarn` #
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: "${{ secrets.GITHUB_TOKEN }}"
firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_WEBPAGE_NAME }}"
projectId: webpage_name
您可以在三个级别定义环境变量:
工作流程:在整个工作流程中可用。
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:
...
作业:作业的所有步骤都可用。
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:
...
步骤: 仅在作业中的特定步骤中可用。
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 }}
对于您的情况,因为您在 yarn build
期间只需要 API 键,最好在步骤中声明它。
参考:https://docs.github.com/es/actions/learn-github-actions/environment-variables