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

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

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

Travis CI repository environment variables

Мой файл.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 о статусе сборки, и развертывание не выполняется.

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

Ответ 1

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

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

Например

$ 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 здесь.

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