如何在 CircleCI 中为不同的环境设置不同的环境变量

How to setup different env variables for different environments in CircleCI

我想在CircleCI中针对不同的环境使用不同的环境变量。例如,有一个 WEBSITE_URL 变量,我希望它对于生产构建和其他构建是不同的。我在 CircleCI 项目设置(环境变量)中设置 PROD_WEBSITE_URLDEV_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