gpt4 book ai didi

reactjs - 我可以将环境变量从 Gitlab .gitlab-ci.yml 传递到 React 应用程序吗?

转载 作者:行者123 更新时间:2023-12-03 14:02:38 25 4
gpt4 key购买 nike

我正在尝试使用 gitlab CI 管道动态设置环境变量。我想要实现的是根据我要部署到的阶段(阶段、产品)注入(inject)正确的 API key 和 URL。

在我的 React 应用程序中,我使用 process.env.REACT_APP_APPSYNC_URL 访问变量,如 react documentation 中所述。 。

到目前为止,我已尝试在 gitlab UI 中设置变量并在我的 .gitlab-ci.yml 文件中引用它们(请参阅下面的代码)。

不幸的是,我无法以这种方式访问​​变量,所以我将非常感谢任何帮助。

我刚刚开始使用 CI/CD 和不同的环境,所以如果我通常在这里使用不好的方法,请告诉我!

这是 .gitlab-ci.yml:

image: nikolaik/python-nodejs:latest

stages:
- install
- test
- deploy

install:
stage: install
script:
- npm install
- npm run build
artifacts:
untracked: true
only:
- stage
- master

test:
stage: test
dependencies:
- install
script:
- npm run test
artifacts:
untracked: true
only:
- stage
- master

deployDev:
stage: deploy
only:
- stage
dependencies:
- install
- test
script:
- pip3 install awscli
- aws configure set aws_access_key_id "$DEV_AWS_KEY"
- aws configure set aws_secret_access_key "$DEV_AWS_SECRET"
- aws s3 sync ./build/ s3://example.dev
variables:
REACT_APP_COGNITO_REGION: $DEV_COGNITO_REGION
REACT_APP_COGNITO_USER_POOL_ID: $DEV_COGNITO_USER_POOL_ID
REACT_APP_COGNITO_APP_CLIENT_ID: $DEV_COGNITO_APP_CLIENT_ID
REACT_APP_COGNITO_IDENTITY_POOL_ID: $DEV_COGNITO_IDENTITY_POOL_ID
REACT_APP_APPSYNC_URL: $DEV_APPSYNC_URL
REACT_APP_APPSYNC_REGION: $DEV_APPSYNC_REGION
REACT_APP_APPSYNC_AUTHENTIACTION_TYPE: $DEV_APPSYNC_AUTHENTIACTION_TYPE
deployProd:
stage: deploy
only:
- master
dependencies:
- install
- test
script:
- pip3 install awscli
- aws configure set aws_access_key_id "$PROD_AWS_KEY"
- aws configure set aws_secret_access_key "$PROD_AWS_SECRET"
- aws s3 sync ./build/ s3://example.com

干杯!

最佳答案

此行来自CRA docs很重要:环境变量是在构建期间嵌入的。因此在运行构建命令之前设置变量。

image: node:10.16.0-alpine

stages:
- build
- deploy

build_app:
stage: build
script:
- export REACT_APP_SECRET_API_KEY=$API_KEY # set REACT_APP variables before build command
- yarn install
- yarn build
artifacts:
name: "$CI_PIPELINE_ID"
paths:
- build
when: on_success

deploy_app:
stage: deploy
dependencies:
- build_app
script:
- echo "Set deployment variables"
- echo "Deployment scripts"

关于reactjs - 我可以将环境变量从 Gitlab .gitlab-ci.yml 传递到 React 应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58891192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com