在CircleCI中使用环境变量
问题描述:
我正在尝试使用CircleCI来运行自动化测试。我有一个config.yml文件,其中包含我不想上传到我的回购站的秘密信息。在CircleCI中使用环境变量
因此我创建了一套ENV的varialbes在项目设置部分:
VR_API_KEY = some_value
CLARIFAI_CLIENT_ID = some_value
CLARIFAI_CLIENT_SECRET = some_value
IMAGGA_API_KEY = some_value
IMAGGA_API_SECRET = some_value
的config.yml,我已经删除的实际值,看起来像这样
visual-recognition:
api-key: ${VR_API_KEY}
clarifai:
client-id: ${CLARIFAI_CLIENT_ID}
client-secret: ${CLARIFAI_CLIENT_SECRET}
imagga:
api-key: ${IMAGGA_API_KEY}
api-secret: ${IMAGGA_API_SECRET}
我有一个测试,基本上创建API客户端实例和配置一切,这个测试失败,因为它看起来像CircleCI没有正确替换值...这里是一些打印输出(这只是当从配置读取值.yml)
-------------------- >> begin captured stdout << ---------------------
Checking tagger queries clarifai API
${CLARIFAI_CLIENT_ID}
${CLARIFAI_CLIENT_SECRET}
COULD NOT LOAD: 'UNAUTHORIZED'
--------------------- >> end captured stdout << ----------------------
将无法加载:“未授权”是因为unvalid凭据导致的Oauth舞蹈失败
任何线索期待?谢谢!
意思是没有替代,因此所有的测试都会失败....我在这里做错了...顺便说一句,我没有circle.yml文件呢...我需要吗一?
谢谢!
编辑:如果有人运行到同样的问题,解决办法是相当简单的,我简单加密的文件config.yml这里描绘
https://github.com/circleci/encrypted-files
然后在circle.yml只需添加一个指令去解密和命名输出文件config.yml ......就是这样!
dependencies:
pre:
# update locally with:
# openssl aes-256-cbc -e -in secret-env-plain -out secret-env-cipher -k $KEY
- openssl aes-256-cbc -d -in config-cipher -k $KEY >> config.yml
答
CircleCI还支持放入环境变量(CircleCI Environment Variables)。您可以转到项目设置 - >环境变量,而不是将环境变量的值放入代码中。然后只需点击添加名称和值的变量。通常通过名称访问环境变量。
看到我编辑的问题,设法解决它mysefl – AlejandroVK