在circle 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没有设置,有没有人可以建议一下?谢谢。
发布于 2021-09-14 11:26:06
解决方案是将yarn测试放在另一个运行步骤中,因为在设置新的env var之后需要重新加载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 testhttps://stackoverflow.com/questions/69176003
复制相似问题