web-dev-qa-db-ja.com

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通知が表示されず、デプロイメントが失敗します。

私はこのプロセスを正しく行っていますか、それとも監督していることはありますか?

29
Simon Finney

Travis CIのシーケンスでは、環境変数を読み取るにはおそらく早すぎると思います。

私が提案するのは、むしろ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 here で機密データを暗号化する方法の詳細を確認できます。

お役に立てれば。

13
Dominic Jodoin