【问题标题】:Circleci create environment variable from existing env varCircleci 从现有的环境变量创建环境变量
【发布时间】:2021-11-09 12:47:03
【问题描述】:

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

- 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 没有设置,有人可以请教吗?谢谢。

【问题讨论】:

  • 您可以尝试在您的管道中记录“${CIRCLE_BRANCH}”的值吗?我认为你的 if 和 else if 条件都没有满足,所以它甚至不会去那里。或者尝试使用相同的命令添加 else 条件
  • 它的值是master。 CIRCLE_BRANCH: 'master'
  • 用“”代替“”
  • 请问在哪一部分? @猎户座
  • echo "export FIREBASE_API_KEY=$PROD_FIREBASE_API_KEY" >> $BASH_ENV

标签: node.js bash circleci circleci-2.0


【解决方案1】:

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

      - 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    相关资源
    最近更新 更多