時雨堂では WebRTC SFU Sora の iOS SDK を公開しているが、この SDK のビルドを自動化するため CircleCI の iOS をビルドできる機能を利用してみることにした。
CircleCI の 2.0 はまだ beta のため、iOS のビルドは 1.0 方式で書く事がかった。また、ドキュメントを読むと Xcode のバージョンが指定できるようなので、Xcode のバージョンを社内で利用している 8.3.3 を指定してみた。
machine:
xcode:
version: 8.3.3
これを設定するだけで良い。あとは勝手にビルドしてくれる。ただ依存解決は自分でやる必要がある。
dependencies:
pre:
— carthage update — platform iOS
Carthage という依存解決用のツールを使っているので、そちらで依存を解決する。carthage 自体は最初から入っていたので新規でインストールしなくて良かった。
ここまではサクサク来た。あとはビルドというところで弊社の SDK はテストが無い、というか実機でしか動作確認ができないので簡単にテストが書けない。ただ CircleCI のデフォルトビルドは test を前提として書かれていた。それはそうだ。ということで、test を外した xcodebuil を実行部分に追加した。
出来上がった circle.yml はこちら。
machine:
xcode:
version: 8.3.3dependencies:
pre:
— carthage update — platform iOStest:
override:
— set -o pipefail &&
xcodebuild
-project ‘Sora.xcodeproj’
-scheme ‘Sora’
clean build
-sdk iphonesimulator
-destination ‘platform=iOS Simulator,name=iPhone 6,OS=latest’
CODE_SIGNING_REQUIRED=NO
CODE_SIGN_IDENTITY=
PROVISIONING_PROFILE= |
tee $CIRCLE_ARTIFACTS/xcode_raw.log |
xcpretty — color — report junit — output $CIRCLE_TEST_REPORTS/xcode/results.xml
無事 push したら CircleCI でビルドが走るようになった。サクッと導入できた素晴らしい。
費用だが … 月額 $39 のプランで自社の場合は大丈夫だと思う。
普段 CircleCI を使っているというのもあるが、ここまで簡単に導入できるのは驚いた。
また、すごく重要なのが私は iOS アプリ開発が未経験ということだ。それでもここまで簡単に導入できるというのは素晴らしい。また iOS という特殊な環境なのに、サーバ側で簡単にテストできるサービスを提供されているのも凄い。
次は 8 月までにはリリース予定の Android SDK に自動ビルドを導入していきたい。