在 Github Actions 中注入 .env.local 文件或自定义环境变量集到 yarn build
Posted
技术标签:
【中文标题】在 Github Actions 中注入 .env.local 文件或自定义环境变量集到 yarn build【英文标题】:Inject .env.local file or custom set of environment variables to yarn build in Github Actions 【发布时间】:2020-08-28 17:05:29 【问题描述】:我有一个 github 操作,它正在构建 React 应用程序(基于 create-react-app
)并将其部署到 AWS S3。我必须传递一些环境变量才能正确运行yarn build
命令。
我可以将它们直接保存在.env
文件中,但我不想将它们保存在存储库中。目前我只是在yarn build
命令之前添加环境变量,但这是一个烦人的解决方案,似乎有点hacky。理想情况下,我想用我自己的配置注入.env.local
文件,但我不知道该怎么做。
这是我的build.yml
文件:
name: Build
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.13.1]
steps:
- uses: actions/checkout@v1
- name: Use Node.js $ matrix.node-version
uses: actions/setup-node@v1
with:
node-version: $ matrix.node-version
- name: Yarn install
run: yarn install
- name: Build
run: REACT_APP_GRAPHQL_URL=https://some.url/graphql CI=false yarn build
- name: Deploy to S3
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --delete
env:
AWS_S3_BUCKET: my-bucket-name
AWS_ACCESS_KEY_ID: $ secrets.AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $ secrets.AWS_SECRET_ACCESS_KEY
AWS_REGION: $ secrets.AWS_REGION
SOURCE_DIR: "build"
如您所见,魔法发生在这里:
run: REACT_APP_GRAPHQL_URL=https://some.url/graphql CI=false yarn build
我怎样才能让它看起来更好看?我有两个变量是可以的,但如果我有几十个呢?
顺便说一句 - 它是一个私人存储库,如果它有什么不同的话。 而且我不想使用其他 CI 解决方案,目前 Github Actions 对我来说似乎已经足够了。
【问题讨论】:
看起来这个问题已经在这里回答了***.com/questions/61117865/… 【参考方案1】:你可以这样变魔术,
name: Build
on:
push:
branches:
- master
env:
CI : false
REACT_APP_GRAPHQL_URL : https://some.url/graphql
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.13.1]
steps:
- uses: actions/checkout@v1
- name: Use Node.js $ matrix.node-version
uses: actions/setup-node@v1
with:
node-version: $ matrix.node-version
- name: Yarn install
run: yarn install
- name: Build
run: yarn build
- name: Deploy to S3
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --delete
env:
AWS_S3_BUCKET: my-bucket-name
AWS_ACCESS_KEY_ID: $ secrets.AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $ secrets.AWS_SECRET_ACCESS_KEY
AWS_REGION: $ secrets.AWS_REGION
SOURCE_DIR: "build"
我觉得这样更好看
【讨论】:
以上是关于在 Github Actions 中注入 .env.local 文件或自定义环境变量集到 yarn build的主要内容,如果未能解决你的问题,请参考以下文章
Github Actions - 如何使我的 env 变量(存储在 .env 文件中)在我的工作流程中可用
如何在 GitHub Actions 中使用 bash 表达式设置 env var?
使用 Github Actions 部署 Firebase Cloud 函数时的环境变量
github actions firebase 没有项目活动,但项目别名可用
iOS- 如何在运行时使用Google Cloud Storage在gitHub工作流程中注入gc_keys.json文件?