[英]use environment variables in CircleCI
我正在尝试使用CircleCI来运行自动化测试。 我有一个config.yml文件tat,其中包含一些机密文件,出于种种原因我不想将其上载到我的仓库中。
因此,我在“项目设置”部分中创建了一组环境变量:
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没有正确替换值...这是一些打印输出(这是从config读取值时的结果) .yml)
-------------------- >> begin captured stdout << ---------------------
Checking tagger queries clarifai API
${CLARIFAI_CLIENT_ID}
${CLARIFAI_CLIENT_SECRET}
COULD NOT LOAD: 'UNAUTHORIZED'
--------------------- >> end captured stdout << ----------------------
可能无法加载:由于无效的凭证会导致Oauth跳舞失败,因此应为“ UNAUTHORIZED”
有什么线索吗? 谢谢!
意味着没有替代,因此所有测试都将失败。...我在这里做错了什么...顺便说一句,我还没有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环境变量 )。 而不是将环境变量的值放在代码中,而是转到项目设置->环境变量。 然后只需单击添加具有名称和值的变量。 您通常通过名称访问环境变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.