"パーフェクト 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 ページが表示されるので、それに従って設定するだけ。

できーた(∩´∀`)∩ワーイ