全力で怠けたい

怠けるために全力を尽くしたいブログ。

Travis CI で環境変数を暗号化して使う方法。

Travis CI で環境変数を暗号化して .travis.yml に保存してアプリから使う方法をメモしておく。

Travis CI で環境変数を暗号化して使う方法

環境とか前提条件

Travis CI は travis-ci.comを使ってる。

環境変数の暗号化に使う travis コマンドのバージョン。

$ travis --version
1.9.1

環境変数の暗号化

環境変数の暗号化は travis コマンドを使う。 Mac は Homebrew でインストールするのが楽だと思う。

$ brew install travis

環境変数travis login コマンドで Travis CI にログインしてから暗号化していく。 Travis CI は travis-ci.comを使うので travis login コマンドは --com オプションか --pro オプションを指定していく。

$ travis login --com

カレントディレクトリを Git リポジトリに移動してから travis encrypt コマンドで環境変数を暗号化していく。 Travis CI は travis-ci.comを使うので travis encrypt コマンドは --com オプションか --pro オプションを指定していく。 暗号化した環境変数travis encrypt コマンドの出力の secure: に続いて出力するので .travis.yml にコピペする。

$ cd /path/to/your/git/repo

$ travis encrypt --com MY_SECRET_ENV=super_secret
Please add the following to your .travis.yml file:

  secure: "dIEvchZ14clAFpaxtTwQrKSy3ueNgQSUGilGQRKMmV8tWJq3iVoZwQxr5uggrQdyL74MuFOweELyuMXcw4bGX5W/pBecZ7weacrEw2Phaf/M81sjv4dmhT86XNsqzR3ZjhR2DzeyFMAbmyTWbV3iCJ7PVj6KIodPku1bHKZuTDhfgIO3/zz9GYSSlt6xyE+X+0R9853vN4hw2Xls64obHUv+UL5/uxWK3scvTM1LnSddzbX+oLCbxN6kNJV9YKYN36M22WXMLqqtPPr5L9ogNPrGSr6iMsfWuvgyNzP4gv4tUqEP6aTiLFM5PVf36BVZWjkkAnlKeptFkzNVeA9uSLykbTn3ju8ESq/lXVEBbhv/Ig2etEP2IuA0+7nOA43fn++cDn7iJ4TYKZszXtoHp2wG/OoDwfF/h58RS6JiosfBNczetoEokM82tXBrXf3OKoTVxoKmac+i65FFMgDNU4KtIPb58fPw9CVpOIWNPjzXtfbJ78YrZhjl1gyMHLQKK3hHhB7M4l4v8CVHeqe5cAxCK0oQs5TW5dEP+dDbr/pmbwqImGwhM1ClENCpFFPegFVHILjtpV+s5nvkFepd/v5WzBIUhWigaho43U6xGUky2fa5dwicCaegU5PwMOBAZtYAPzQGCnXAnquqD2dVIucghFGvNudrDaYNHTEZOiY="

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

暗号化した環境変数はこんな感じで .travis.yml に入れる。

env:
  global:
  - secure: dIEvchZ14clAFpaxtTwQrKSy3ueNgQSUGilGQRKMmV8tWJq3iVoZwQxr5uggrQdyL74MuFOweELyuMXcw4bGX5W/pBecZ7weacrEw2Phaf/M81sjv4dmhT86XNsqzR3ZjhR2DzeyFMAbmyTWbV3iCJ7PVj6KIodPku1bHKZuTDhfgIO3/zz9GYSSlt6xyE+X+0R9853vN4hw2Xls64obHUv+UL5/uxWK3scvTM1LnSddzbX+oLCbxN6kNJV9YKYN36M22WXMLqqtPPr5L9ogNPrGSr6iMsfWuvgyNzP4gv4tUqEP6aTiLFM5PVf36BVZWjkkAnlKeptFkzNVeA9uSLykbTn3ju8ESq/lXVEBbhv/Ig2etEP2IuA0+7nOA43fn++cDn7iJ4TYKZszXtoHp2wG/OoDwfF/h58RS6JiosfBNczetoEokM82tXBrXf3OKoTVxoKmac+i65FFMgDNU4KtIPb58fPw9CVpOIWNPjzXtfbJ78YrZhjl1gyMHLQKK3hHhB7M4l4v8CVHeqe5cAxCK0oQs5TW5dEP+dDbr/pmbwqImGwhM1ClENCpFFPegFVHILjtpV+s5nvkFepd/v5WzBIUhWigaho43U6xGUky2fa5dwicCaegU5PwMOBAZtYAPzQGCnXAnquqD2dVIucghFGvNudrDaYNHTEZOiY=

travis encrypt コマンドの出力を .travis.yml にコピペするのは面倒くさいけど travis encrypt コマンドを --add オプションを指定して実行すると暗号化した環境変数を .travis.yml に追加するかの確認のプロンプトが表示する。 y を入力すると暗号化した環境変数が .travis.yml に反映する。楽。

$ travis encrypt --com MY_SECRET_ENV=super_secret --add

Overwrite the config file /path/to/your/git/repo/.travis.yml with the content below?

This reformats the existing file.

---
env:
  global:
    secure: hMvpI0fq/FtqpevJU1wOu72votNKw+UeVwoWjqfBef8e//J4GrzGaK7qw8TcU+qhg2DWSXOjDhxgQO419tSOnsMj0YrmRX2R07girRnAWzJn19zgklYCUC9l3vX2qYnq+iFq22Gg94w/R9O5V7HfKbcg9weqpTyv8rX4yrLBRs48YKVWZzEWL6Ui1JKL0LGdThbeekSPN5kfs900rTR5jMPF9ILtoZAT9nSmcYplXP0jXfk4w7wrHszP0p+J1lhqYi+IoAEbb4Vh0WlzigLrFNTOjKiBGxer8JBeXut7x0DdWuGfM1ujVwbeG9SIxNr0CRuYBUl/NeDqfSSq5JJcUd3T8I/CuWROBgTkb1lG9ehr2+kuKC8hbYVbmrnv9Vztjmrk/21XVsHWMIdNj+ihkuUWTggErJ+uk3knqjv94noW9Pni2TWQI+NdrKZhwvCL2+lZpnyuTX5v0etT85aaGq1cDfipI6aB6bPeW1gitG6s2jPlA8AG7qGMOwZbh2Kn0TtIBiwl/CJWCAfLAzqZ7awWDaRg28Jb6R069ON3ZVAXw4eKoW37FNhLZJp2nDHtE+vWBoNkJRt1uPliVE1p2xn9OosQ2tWGtu/yaJSSZOCOgWiBWcsH/jhgRwI1ybOMwsAfygHmsniRPel2oDJ2pi7WWvCJu17E0UKy5Bnzs30=


(y/N)

カレントディレクトリを Git リポジトリに移動してから travis encrypt コマンドで環境変数を暗号化したけど、実は travis encrypt --repo <SLUG> みたいに --repo オプションで Githubリポジトリを指定するとカレントディレクトリがどこにいても環境変数を暗号化することができる。 ただ --add オプションが効かなくなるので暗号化した環境変数を .travis.yml にコピペするのが面倒くさいので、自分はカレントディレクトリを Git リポジトリに移動してから travis encrypt --add してる。

暗号化した環境変数Travis CI ログへの出力

暗号化した環境変数[secure] みたいにマスクして Travis CI のログに出力する。

Setting environment variables from .travis.yml
$ export MY_SECRET_ENV=[secure]

参考ページ