2015-11-16 4 views
11

Ich möchte Umgebungsvariablen in meinen Travis CI-Repository-Einstellungen deklarieren und sie in meiner .travis.yml-Datei verwenden, um eine Anwendung bereitzustellen und eine Build-Benachrichtigung in Slack zu veröffentlichen .Travis CI - Verwenden von Repository-Umgebungsvariablen in .travis.yml

Ich habe setzen Umgebungsvariablen in meinem Travis CI Repository-Einstellungen wie folgt:

Travis CI repository environment variables

Meine .travis.yml Datei erscheint wie die folgende:

language: node_js 
node_js: 
    - '0.12' 
cache: 
    directories: 
    - node_modules 
deploy: 
    edge: true 
    provider: cloudfoundry 
    api: $CF_API 
    username: $CF_USERNAME 
    password: $CF_PASSWORD 
    organization: $CF_ORGANIZATION 
    space: $CF_SPACE 
notifications: 
    slack: $NOTIFICATIONS_SLACK 

Als ich hinzufügen Werte in die Datei .travis.yml wie sie sind, funktioniert alles wie geplant.

Wenn ich jedoch versuche, auf die im Repository festgelegten Umgebungsvariablen zu verweisen, erhalte ich bei einem Buildstatus keine Slack-Benachrichtigung, und die Bereitstellung schlägt fehl.

Verfolge ich diesen Prozess richtig oder gibt es etwas, das ich beaufsichtige?

+0

Was passiert, wenn Sie 'before_script: echo $ CF_USERNAME' in Ihrer .travis.yml-Datei hinzufügen? Wird der Inhalt der Umgebungsvariablen in Ihrem Buildprotokoll gedruckt? –

+0

Das stimmt, es zeigt die Umgebungsvariable an! –

+0

Soll ich stattdessen 'echo $ ENVIRONMENT_VARIABLE' verwenden? –

Antwort

5

Ich denke, es ist wahrscheinlich zu früh in Travis CI-Sequenz für Ihre Umgebungsvariablen gelesen werden.

Was ich vorschlagen würde ist, sie eher mit dem traviscommand-line tool zu verschlüsseln.

z.

$ travis encrypt 
Reading from stdin, press Ctrl+D when done 
username 
Please add the following to your .travis.yml file: 

secure: "TD955qR6qvpVIz3fLkGeeUhV76deeVRaLVYjW9YjV6Ob7wd+vPtACZ..." 

Pro Tip: You can add it automatically by running with --add. 

Dann würde ich copy/paste das secure: "TD955qR6qvpVIz3fLkGeeUhV76d..." Ergebnis an der entsprechenden Stelle in Ihrer .travis.yml Datei:

language: node_js 
node_js: 
    - '0.12' 
cache: 
    directories: 
    - node_modules 
deploy: 
    edge: true 
    provider: cloudfoundry 
    api: 
    secure: "bHU4+ZDFeZcHpuE/WRpgMBcxr8l..." 
    username: 
    secure: "TD955qR6qvpVIz3fLkGeeUhV76d..." 

Sie können weitere Informationen darüber, wie sensible Daten auf Travis CI verschlüsseln here .

Hoffe, das hilft.

+0

Muss ich auch einen Wert angeben? –

+0

Sie sollten 'travis encrypt' +' 'in Ihrem Repository-Verzeichnis eingeben und dann den Wert gefolgt von' 'eingeben. Dies wird einen Wert ausgeben, der mit 'secure: ...' beginnt. –