GitHub + Travis CI で iOS アプリの CI
GitHub + Travis CI で iOS アプリの CI
GitHub にて iOS アプリソースコードを管理している状態で、Travis CI にて以下を自動実行するための設定を行った。
- ビルド
- 単体テスト
- UI テスト
- Lint
設定
Travis CI - Test and Deploy Your Code with Confidence
これに沿って進めていく。
- Travis CI にて対象のリポジトリを設定しておく
- 対象のリポジトリに設定ファイルを配置しておく
- プッシュ等のイベントをトリガーに、Travis CI が設定ファイルの内容に沿った CI を走らせる
と流れはこのようになる。
Travis CI 上で、GitHub のアカウントと連携することでリポジトリ一覧を確認できる。
そこから CI 対象のリポジトリを有効化する。
次に .travis.yml
ファイルをリポジトリに追加する。
Building an Objective-C or Swift Project - Travis CI
osx_image: xcode8.3 language: objective-c before_install: - brew update - brew outdated swiftlint || brew upgrade swiftlint - carthage bootstrap --platform ios script: - swiftlint - xcodebuild test -project SampleApp.xcodeproj -scheme SampleApp -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.3.1'
- osx_image
- Supported Xcode versions を参考に、自分の環境と合わせる
- language
- Swift だろうと
objective-c
. これはネーミングがちょっと、とは思う
- Swift だろうと
- before_install
- Travis CI は毎回 VM を新規に立てて CI 実行しているそうな
- CI 実行時に依存しているツールやパッケージがあるならここでセットアップする
- Homebrew は こちら にベストプラクティス的なのがあるので参考されたし
- script
- 実際に実行されるスクリプト
- Lint と単体テスト、UIテストを実行している
Xcode のプロジェクト内で、対象の scheme を shared にする必要がある 点には注意。
UI テストはどうにもうまく実行できずにこけることがあるぽいので外した方が無難かも。
今はこけたら retry して対処しているがそれはあんまりにも。
Badge
以下の手順で README に Badge を表示することができる。
Embedding Status Images - Travis CI
その他
こんな環境を無料で提供してくれるとはいやはやなんとも。
今回設定したリポジトリはこちら。
kfurue/rails-tutorial-ios/ Rails Tutorial Sample Client of iOS
前回までで作成した REST API を使って iOS アプリを作ってみよう、としています。
(OAuth 認証とか自動でテストする方法あるんやろか早速雲行きが。。)