2016-08-01 11 views
0

Ich versuche CircleCI zu verwenden, um automatisierte Tests auszuführen. Ich habe eine Datei config.yml, die Geheimnisse enthält, die ich aus Gründen des Zugriffs nicht in meinen Repo hochladen möchte.Umgebungsvariablen in CircleCI verwenden

So habe ich eine Reihe von env erstellt varialbes im Abschnitt Projekteinstellungen:

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 

Die config.yml habe ich die aktuellen Werte entfernt und sieht aus wie dieses

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} 

Ich habe einen Test, der im Grunde die API-Client-Instanzen erstellt und alles konfiguriert, dieser Test schlägt fehl, da CircleCI die Werte nicht richtig ersetzt ... hier ist die Ausgabe einiger Ausdrucke (das ist nur, wenn die Werte aus der Konfig gelesen werden .yml)

-------------------- >> begin captured stdout << --------------------- 
Checking tagger queries clarifai API 
${CLARIFAI_CLIENT_ID} 
${CLARIFAI_CLIENT_SECRET} 
COULD NOT LOAD: 'UNAUTHORIZED' 

--------------------- >> end captured stdout << ---------------------- 

Das konnte nicht geladen werden: ‚unerlaubt‘ erwartet, da unvalid Anmeldeinformationen Tanzversagen Oauth führen

Irgendwelche Hinweise? Vielen Dank!

Bedeutung es keine Substitution ist und daher alle Tests fehlschlagen .... was ich ... übrigens hier falsch zu machen, ich habe keine circle.yml Datei noch ... brauche ich ein?

Danke!

EDIT: Wenn jemand in das gleiche Problem führt, war Lösung ziemlich einfach, ich habe einfach die config.yml Datei chiffriert wie hier

dargestellt

https://github.com/circleci/encrypted-files

dann in circle.yml nur hinzufügen eine Anleitung zum Entschlüsseln und Benennen der Ausgabedatei config.yml ... und das wars!

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

Siehe meine bearbeitete Frage, es geschafft, es mysefl zu beheben – AlejandroVK

Antwort

0

CircleCI unterstützt auch in Umgebungsvariablen setzen (CircleCI Environment Variables). Anstatt den Wert der Umgebungsvariablen in den Code zu schreiben, gehen Sie zu den Projekteinstellungen -> Umgebungsvariablen. Klicken Sie dann auf Variable mit Namen und Wert hinzufügen. Sie greifen normalerweise über den Namen auf die Umgebungsvariable zu.