我正在嘗試使用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
看到我編輯的問題,設法解決它mysefl – AlejandroVK