2016-08-01 126 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)。您可以轉到項目設置 - >環境變量,而不是將環境變量的值放入代碼中。然後只需點擊添加名稱和值的變量。通常通過名稱訪問環境變量。