Travis CI Meetup Tokyoに行ってきた
前半はTravis CIのデモ、真ん中てCEOのお話、最後にLTと三部構成でした。
こちらに動画があるそうです。
http://www.ustream.tv/recorded/52769967
デモは一通りのTravis CIの使い方をデモしていただきました。
何となくわかってるデフォルトの挙動などにちゃんと説明がはいり、
基礎知識を固めるには凄く良かったです。
また、いくつか知らない機能(sudo false)や、
.travis.ymlの書式をオンラインで確認できるTravis WebLint等が紹介されていました。
なお、デモに使ったリポジトリは以下にあるようです。
https://github.com/BanzaiMan/travis-intro-tokyo
CEOの話では、現在のjob数やVM数、サーバの数などを話していただきました。
それと後半では環境によって良くはまる10個が紹介されていました。
ファイルシステムのケースセンシティブや、GNUとBSDの違いだったり、aptから古いバージョンが消えたり、
タイムゾーンやOSの違いによる環境構築や言語自体のバグ等々…
ここ最近に当たった奴がいくつかあり頭が痛かったです…(´・_・`)
最後のLTではいろんな発表が行われました。
見つけた分だけまとめておきます。
Automated releasing iOS app with Travis CI
https://speakerdeck.com/kishikawakatsumi/automated-releasing-ios-app-with-travis-ci
私はJenkinsを使っていますが、似たような構成でやってるので参考になりました。
ただ、ビルド時間が5倍ぐらい長いので、こちらのプロジェクトにそのまま導入は難しそうです…
xcarchiveに書き出すと、申請用ビルドでテストフライトに出せるというのは新たな発見でした。
(追記: 発表者様から指摘がありました)
@ota42y 僕の話し方が悪かったのですが、xcarchiveだから、というわけではなくて、AppStoreとAdHocのプロビジョニングは互換性があるので、xcarchiveからipaにするところでプロビジョニングをAdHocにしています。同じビルドで署名だけ変える方法です。
— kishikawa katsumi (@k_katsumi) 2014, 9月 18
Travis CI API LT
https://speakerdeck.com/pinzolo/travis-ci-api-lt
Travis CIのAPIと、gemの利用例です。
パッと見た限り、必要最低限は揃ってそうなので、hubotから叩くみたいなことが出来そうです。
QUnit on Travis CI @shigemk2
https://shigemk2.github.io/travisci_jp/#/step-1
jsのライブラリを作った際の利用例でした。
実際に作る際に参考に出来そうでした。
When was the build passing?
http://sanemat.github.io/talks/20140917-travis-ci-meetup-tachikoma-io/
依存してるライブラリが更新すると、いつの間にかテストが落ちるようになってるけど、
テストが実行されないとわからないので、活発でないプロジェクトだと大変だよね…って話です。
これに対して、定期的にPRを送るTachikoma.io - Interval Pull Request Appというものを作ったそうです。
bundle updateをしてPR送るみたいなこともやってくれるため、とりあえず仕掛けておいて損は無さそうです。
Testing your app with Selenium on Travis CI by Yusuke Ando
https://speakerdeck.com/yandod/testing-your-app-with-selenium-on-travis-ci-1
Travis CIでのSelenium導入の話です。
FirefoxやX等ははじめから入っているため、立ち上げるだけでいいらしく、
面倒なインストールをしなくていいためとても楽そうでした。
懇親会
DeNAさんがお寿司を出してくれました!!!!!!!!
お寿司だヽ( ・∀・)ノ #travisci_jp pic.twitter.com/zrmrhO6WMw
— おおた (@ota42y) 2014, 9月 17
懇親会で聞いたところ、大体の人がJenkinsは保守が死ねるよね…
って言っていたので、やっぱりみんな大変なんだな…となりました(´・_・`)
やはりYAMLで設定できるTravis CIの方が楽ですよね…