読者です 読者をやめる 読者になる 読者になる

やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

Travis CI Meetup Tokyo に行ってきました #travisci_jp

Testing CI

Travis CIのJosh Kalderimisさん、Hiro Asariさんが(RubyKaigiのため)来日されるということで、DeNAさんで開催されたMeetupイベントに行ってきました。

f:id:nowsprinting:20140327064058p:plain

当日撮影された動画および、発表スライドはconnpassの資料ページにまとめてあります

Travis CI Meetup Tokyo - 資料一覧 - connpass

travis-intro(Asariさん)

空のリポジトリから.travis.ymlを書きつつTravis CIの機能を説明していく形の、ライブCIとでも言うべきプレゼン。

使用したリポジトリGitHubで、またビルド履歴はTravis CIのビルドページで参照できます。

ランタイムや環境変数のマトリクスを書いたとき、

matrix:
    allow_failures:
        - rvm: x.x

などと書くと、指定した組み合わせのジョブがfailしてもビルド自体は成功扱いになるという機能、知りませんでした。

Travis CIについて(Joshさん)

Travis CI GmbHのCEO、Joshさんによる、中身の話。

  • Joshさんはニュージーランド住、ドイツ料理好き(Travis CIはドイツの会社)
  • 利用されている言語、travis.org(無料)はnode.jsが多い。travis.com(有料)はRubyが多い。
  • 主に、インフラとUIの2チーム
  • OpenVZ and Docker
  • BIWOMM (but it works on my machine!) からの脱却
  • マルチプラットフォームを提供するのは大変だけどやっている。case insensitiveなOSもあるし大変。
  • Xcode 6対応は近いうちに。
  • Job実行中、10分出力が無いと停止する制限は、'travis_wait'を使うことで回避できる。ただしビルド全体の制限である50分は回避できない。
  • forkされたリポジトリからpull-requestする上でのSecure Variablesの問題、対応を検討中。現状はひとつのリポジトリでブランチからのpull-requestで使って欲しい

LT

Travis API(pinzoloさん)

  • ビルドの履歴をAPIで取得して、Rubyバージョンごとのパフォーマンスを見える化
  • ただしdurationはapt-getの時間も含むので、ビルド単体の時間は取れない

Automated releasing iOS app with Travis CI(岸川さん)

  • iOSアプリのリリースビルドと、実機確認用のビルドを作ってTestFlightで配布する
  • まずリリースビルド(xcarchive)を作り、それを元にipaを作る
  • iTunes ConnectへのアップロードはAPIが無いため手作業だが、Travisで作ったファイルをS3にアップロードして保管し、それで申請している

QUnit on Travis CI(shigemk2さん)

  • 個人で開発しているJava ScriptライブラリをQUnitを使ってテスト

Tachikoma.io(sanematさん)

  • Travis CIは、リポジトリにpushされた契機でしかビルドされないため、依存関係にあるライブラリの更新によってビルドが壊れることを検知できない
  • そこで、定期的にpull-requestを作ってビルドを走らせるTachikoma.ioを作った

Testing your app with Selenium on Travis CI(yandoさん)

  • Travis CIにはFirefox(およびxvfb)が標準でインストールされている
  • やむを得ずheadlessでテストするのではなくGUIブラウザで、Seleniumなどを使った自動テストを実行できる

懇親会で聞いた話(差し支えないと思うので)

  • エンタープライズ用途、つまり、GitHub Enterpriseと組み合わせて使いたいという要望に対応する用意はあるそうで、サポートにメールで問い合わせて欲しいとのこと。
  • Xcode複数バージョンインストールは今後も考えていない。容量がかなり大きいこと、AppleNDAのこと。これは聞いてみたものの、バージョンが上がる過渡期にだけそう思うので、新しいものに更新される今の形で問題ないと思っています。

まとめ・所感

今回、Asariさんの呼びかけで企画され、募集とか司会とかでお手伝いさせていただきましたが、会場まわりは全てDeNAさんにやっていただき、司会のほうもJoshさん自ら質疑応答に入ったり、「あと一人で切ってもらおうか」と思ったら、"last one"と言ってくれるし、LTも皆さん概ね時間通りだし、少し余った分はyandoさんが埋めてくれるし、至れり尽くせりでした!

そしてなにより、Joshさんが楽しそうでよかった。ぜひまた来年もやりたいですね。

Travis CIのアップデートなどはTravis CIのブログでも告知されますが、Asariさんも入ってくれているTravis CI 日本語コミュニティでも色々情報が流れてきます。 Facebookのopen groupですので、どなたでも参加できます。

また、来週、京都と福岡でもMeetupが企画されています。お近くの方はぜひ!