【发布时间】: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 对我来说似乎已经足够了。
【问题讨论】:
-
看起来这个问题已经在这里回答了stackoverflow.com/questions/61117865/…
标签: github environment-variables create-react-app yarnpkg github-actions