Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Travis CI - Использование переменных среды репозитория в .travis.yml

Автор вопроса: Simon FinneyОтветов: 1

Я хочу объявить переменные среды в настройках моего репозитория Travis CI и использовать их в моем файле .travis.yml для развертывания приложения и публикации уведомления о сборке в Slack.

Я установил переменные среды в настройках репозитория Travis CI следующим образом:

Переменные среды репозитория Travis CI

Мой файл .travis.yml выглядит следующим образом:

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

Когда я добавляю значения в файл .travis.yml как есть, все работает, как и планировалось.

Однако, когда я пытаюсь сослаться на переменные среды, установленные в репозитории, я не получаю уведомления Slack о состоянии сборки, и развертывание завершается сбоем.

Правильно ли я следую этому процессу или есть что-то, что я наблюдаю?

  • Что произойдет, если вы добавите before_script: echo $CF_USERNAME в свой файл .travis.yml? Печатается ли содержимое переменной env в журнале сборки? Dominic Jodoin 17.11.2015
  • Правильно, он отображает переменную окружения! Simon Finney 17.11.2015
  • Должен ли я использовать echo $ENVIRONMENT_VARIABLE вместо этого? Simon Finney 18.11.2015

travis-ci

Ответы

Ответ 1 · рейтинг 18 · Dominic Jodoin

Я думаю, что, вероятно, слишком рано в последовательности Travis CI для чтения ваших переменных среды.

Я бы предложил зашифровать их с помощью travis инструмента командной строки.

E.g.

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

Затем я скопировал/вставил результат secure: "TD955qR6qvpVIz3fLkGeeUhV76d..." в соответствующее место в файле .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..."

Подробнее о том, как шифровать конфиденциальные данные в Travis CI, можно узнать здесь.

Надеюсь это поможет.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы