如何在 CircleCI 中为不同的环境设置不同的环境变量
How to setup different env variables for different environments in CircleCI
我想在CircleCI
中针对不同的环境使用不同的环境变量。例如,有一个 WEBSITE_URL
变量,我希望它对于生产构建和其他构建是不同的。我在 CircleCI 项目设置(环境变量)中设置 PROD_WEBSITE_URL
和 DEV_WEBSITE_URL
。
我的想法是在 config.yml
文件中使用这段代码,但是当我测试这段代码时,应用程序中的变量未定义。
- run:
name: 'Setup Environment Variables'
command: |
if [[ $CIRCLE_BRANCH == "main" ]] ; then
echo "export WEBSITE_URL=$PROD_WEBSITE_URL" >> $BASH_ENV
else
echo "export WEBSITE_URL=$DEV_WEBSITE_URL" >> $BASH_ENV
fi
P.S:我有 React Native
应用程序,我在本地使用 react-native-dotenv
作为环境变量。
您应该在命令末尾添加 source $BASH_ENV
,如下所示:
- run:
name: 'Setup Environment Variables'
command: |
if [[ $CIRCLE_BRANCH == "main" ]] ; then
echo "export WEBSITE_URL=$PROD_WEBSITE_URL" >> $BASH_ENV
else
echo "export WEBSITE_URL=$DEV_WEBSITE_URL" >> $BASH_ENV
fi
source $BASH_ENV
我想在CircleCI
中针对不同的环境使用不同的环境变量。例如,有一个 WEBSITE_URL
变量,我希望它对于生产构建和其他构建是不同的。我在 CircleCI 项目设置(环境变量)中设置 PROD_WEBSITE_URL
和 DEV_WEBSITE_URL
。
我的想法是在 config.yml
文件中使用这段代码,但是当我测试这段代码时,应用程序中的变量未定义。
- run:
name: 'Setup Environment Variables'
command: |
if [[ $CIRCLE_BRANCH == "main" ]] ; then
echo "export WEBSITE_URL=$PROD_WEBSITE_URL" >> $BASH_ENV
else
echo "export WEBSITE_URL=$DEV_WEBSITE_URL" >> $BASH_ENV
fi
P.S:我有 React Native
应用程序,我在本地使用 react-native-dotenv
作为环境变量。
您应该在命令末尾添加 source $BASH_ENV
,如下所示:
- run:
name: 'Setup Environment Variables'
command: |
if [[ $CIRCLE_BRANCH == "main" ]] ; then
echo "export WEBSITE_URL=$PROD_WEBSITE_URL" >> $BASH_ENV
else
echo "export WEBSITE_URL=$DEV_WEBSITE_URL" >> $BASH_ENV
fi
source $BASH_ENV