"パーフェクト Ruby on Rails" のサンプルアプリケーションである "awesome_events" (写経済み)を使って色々遊んでみちゃうシリーズ。 今回は CI。
CI サービスには、会社で使っているというのと、最近 1コンテナ目が無料になったってことで、CircleCI を選択。
- 作者: すがわらまさのり,前島真一,近藤宇智朗,橋立友宏
- 出版社/メーカー: 技術評論社
- 発売日: 2014/06/06
- メディア: 大型本
- この商品を含むブログ (8件) を見る
Add Project
サインアップ・ログインしたらダッシュボードが表示される。
左サイドバーに +Add Project
というメニューがあるのでこれを押す。
そのあと右画面で GitHub アカウントを選択して、CI したいリポジトリを選ぶ。今回は awesome_events
なので、その行の Build Project
を押す。
ビルド開始
そしたらあれよあれよとビルドが走り...
はい、テスト(rspec)失敗(´・ω・`)
調査
原因、なんとなく思い当たるところもないことはないんだけど、少し調査してみる。 CircleCI の特徴の一つに、ビルドに用いられるコンテナに ssh で入ることができる、というのがある。
画面右上の & enable ssh
というのを押すと、再度コンテナが立ち上がり、rspec が走り、失敗(´・ω・`)し、最後に ssh 接続するためのコマンドを表示してくれる。
気をつけなきゃいけないのは、この状態だとずっとコンテナは立ち上がりっぱなしだということ。1コンテナのプランの場合、このコンテナが落ちるまで他の CI が待ち続けてしまう。ssh する用事が終わったら、右上の cancel
ボタンを押してコンテナを落とすのを忘れないように。
今回は ssh で接続して直接 bundle exec rspec
をしてもテストが失敗することを確認。
経過は割愛するけど、テスト失敗の理由は、config/secrets.yml
の中身が環境変数からセットするようにしていたにも関わらず、CircleCI のコンテナにはそのセットがされていないから、...だった。
環境変数の設定
画面右上の歯車マークからそのプロジェクト固有の設定画面を表示できる。
表示されたいくつかのメニューの中から Tweaks > Environment variables
を選択、必要な環境変数を設定する。
んで Rebuild してみるとー。
やったね、成功 :)
ブランチに対するテストも...
自動的に CI が始まり...
ほいきた成功 :)
awesome_events の CI だけなら、 circle.yml を書かずともできるんだね。べんり! (...って、Ruby のバージョンとかは yml で指定するものだったような......、、はて?)
おまけ・slack への通知
CI の結果の通知を slack へ通知できるようにしてみる。
Slack の設定画面から Integration
で Circle CI
を Add する。
そしたらこんな画面になるので、あとは、既存の channel に通知させるなり、新たにそれ用の channel を作るなり、お好きにどうぞ状態。
通知先の channel を決めたら、あとは CircleCI 側で必要な設定をスクショを交えて説明してくれてる Setup Instructions
ページが表示されるので、それに従って設定するだけ。
できーた(∩´∀`)∩ワーイ