web-dev-qa-db-fra.com

Travis CI - Utilisation de variables d'environnement de référentiel dans .travis.yml

Je cherche à déclarer des variables d'environnement dans mes paramètres de référentiel Travis CI et à les utiliser dans mon fichier .travis.yml pour déployer une application et publier une notification de construction dans Slack.

J'ai défini des variables d'environnement dans mes paramètres de référentiel Travis CI comme ceci:

Travis CI repository environment variables

Mon fichier .travis.yml se présente comme suit:

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

Lorsque j'ajoute les valeurs dans le fichier .travis.yml telles qu'elles sont, tout fonctionne comme prévu.

Cependant, lorsque j'essaie de faire référence aux variables d'environnement définies dans le référentiel, je ne reçois aucune notification Slack sur un état de génération et le déploiement échoue.

Suis-je en train de suivre ce processus correctement ou y a-t-il quelque chose que je supervise?

29
Simon Finney

Je pense qu'il est probablement trop tôt dans la séquence de Travis CI pour que vos variables d'environnement soient lues.

Je suggérerais plutôt de les crypter en utilisant travisoutil de ligne de commande .

Par exemple.

$ 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.

Ensuite, je copier/coller le secure: "TD955qR6qvpVIz3fLkGeeUhV76d..." résultat à l'endroit approprié dans votre fichier .travis.yml:

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

Vous pouvez avoir plus de détails sur la façon de crypter les données sensibles sur Travis CI ici .

J'espère que cela t'aides.

13
Dominic Jodoin