繁体   English   中英

在CircleCI中使用环境变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM