2016-12-12 Travis CI での Heroku Deployment の Error を直した
Travis CI での Heroku Deployment に失敗する状態を修正した。今日はその原因と修正方法について書く。
travis-ci.org/bouzuya/mr-jums は随分前から失敗し続けている。build history を見る限り、名前を bouzuya/bbn-cycle から bouzuya/mr-jums に変えてから、ずっと失敗している。
CI の失敗する理由は deployment だと分かっている。ただ deployment に失敗する理由を分かっていなかった。
まず mr-jums は開発中の確認用の環境として Heroku を選んでいる。ぼくのつくる application はなるべく 12 factors app にしているので、 Heroku でなくてもそんなに困らないのだけど……。まあ手軽だからだ。heroku create && git push heroku master
で動くのを手軽と言わずして何と言うか。
で、 Travis CI から Heroku への deployment に失敗していた。手順どおりに設定しているはずで、何度も手順に従って修正していた。手順は Heroku Deployment - Travis CI に書いてあるとおりだ。
以下に手順を示す。
基本的な設定は travis
と heroku
の両方の CLI をインストールしていれば簡単だ。次のようなコマンドで deploy.api_key
に Heroku の API Key を暗号化して設定する。ほかにもいくつかの key を設定する必要はある。
travis encrypt $(heroku auth:token) --add deploy.api_key
そんなに難しいことはしていないはず……。しかし、失敗した。
今日 document を眺めてみて、次のような command を知った。
travis setup heroku
deployment まわりの初期設定を一括で実施するものだ。これを実行した際の prompt で「 deployment は bouzuya/bbn-cycle だけか?」(意訳) と聞いてくることに気づいた。
おかしい。 bouzuya/mr-jums の travis 設定でなぜ bbn-cycle の名前が出るのか。travis show
で確信した。
$ travis show
Build #30: DEPRECATED
State: passed
Type: push
Branch: master
Compare URL: https://github.com/bouzuya/bbn-cycle/compare/33cba4ca5db8...3b97b612bfd5
Duration: 6 min 57 sec
Started: 2016-10-11 09:21:36
Finished: 2016-10-11 09:24:08
#30.1 passed: 2 min 27 sec node_js: node, os: linux
#30.2 passed: 2 min 15 sec node_js: 6, os: linux
#30.3 passed: 2 min 15 sec node_js: 5, os: linux
travis
が対象となる repository を間違えている。
そこで次のような修正を入れたところ、はじめて master で build が通った。
travis encrypt -r bouzuya/mr-jums $(heroku auth:token) --add deploy.api_key
travis
を travis encrypt
以外で使ったことはなかったのだけど、実は repository の判定に失敗していることもあるので travis show
するのもありだと分かった。
またあとで Qiita に書く。→書いた。『 Travis CI への Heroku Deployment に失敗する場合の一例 - Qiita 』