techium

このブログは何かに追われないと頑張れない人たちが週一更新をノルマに技術情報を発信するブログです。もし何か調査して欲しい内容がありましたら、@kobashinG or @muchiki0226 までいただけますと気が向いたら調査するかもしれません。

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

これに沿って進めていく。

  1. Travis CI にて対象のリポジトリを設定しておく
  2. 対象のリポジトリに設定ファイルを配置しておく
  3. プッシュ等のイベントをトリガーに、Travis CI が設定ファイルの内容に沿った CI を走らせる

と流れはこのようになる。

Travis CI 上で、GitHub のアカウントと連携することでリポジトリ一覧を確認できる。
そこから CI 対象のリポジトリを有効化する。

profileページ

次に .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
  • language
    • Swift だろうと objective-c. これはネーミングがちょっと、とは思う
  • 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 認証とか自動でテストする方法あるんやろか早速雲行きが。。)