2016-08-01 113 views
0

我正在尝试使用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 
+0

看到我编辑的问题,设法解决它mysefl – AlejandroVK

回答

0

CircleCI还支持放入环境变量(CircleCI Environment Variables)。您可以转到项目设置 - >环境变量,而不是将环境变量的值放入代码中。然后只需点击添加名称和值的变量。通常通过名称访问环境变量。