首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Circleci从现有环境变量创建环境变量

Circleci从现有环境变量创建环境变量
EN

Stack Overflow用户
提问于 2021-09-14 10:20:37
回答 1查看 195关注 0票数 1

在circle ci仪表板中,我设置了DEV_USEFUl_API_KEY、PROD_USEFUL_API_KEY等环境变量。然后,在我的circleci配置文件(v2.1)中,我这样做

代码语言:javascript
复制
- run:
    name: Run Tests
    command: |
      if [ "${CIRCLE_BRANCH}" == "master" ]; then
        echo 'export FIREBASE_API_KEY=${PROD_FIREBASE_API_KEY}' >> $BASH_ENV
      elif [[ "${CIRCLE_BRANCH}" == "develop" ]]; then
        echo 'export FIREBASE_API_KEY=${DEV_FIREBASE_API_KEY}' >> $BASH_ENV
      fi
      yarn test

我的想法是,当我的测试运行时,环境变量将被读取。我已经在我的节点应用程序process.env中打印了输出,我可以看到变量PROD_FIREBASE_API_KEY和DEV_FIREBASE_API_KEY在环境中,但是没有预期的FIREBASE_API_KEY。

我尝试将命令的语法更改为:

echo 'export FIREBASE_API_KEY=$PROD_FIREBASE_API_KEY' >> $BASH_ENV

而且还

echo 'export FIREBASE_API_KEY="$PROD_FIREBASE_API_KEY"' >> $BASH_ENV

但是这并没有什么不同,变量FIREBASE_API_KEY没有设置,有没有人可以建议一下?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-14 11:26:06

解决方案是将yarn测试放在另一个运行步骤中,因为在设置新的env var之后需要重新加载bash配置文件(这在每次运行开始时发生)。

代码语言:javascript
复制
      - run:
          name: Configure Environment Variables
          command: |
            if [ "${CIRCLE_BRANCH}" == "master" ]; then
              # Set env variables 
            elif [[ "${CIRCLE_BRANCH}" == "develop" ]]; then
              # Set env variables 
            fi
      - run:
          name: Run Tests
          command: |
            yarn test
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69176003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档