http://codeascraft.com/2014/02/28/etsys-journey-to-continuous-integration-for-mobile-apps/
1 comment | 0 points | by WazanovaNews 約8時間前 edited
EtsyのNassim Kammahが同社のモバイルアプリのCIシステムを紹介しています。
Build
CIマシンはMac Mini + Chef
例えばiOSアプリのビルドはコマンドラインで、
xcodebuild -scheme "Etsy" archiveパッケージのインストールはhomebrew cookbook
ruby環境の管理はrbenv cookbook
Xcode(一部手動のテップあり。)/ Git / Androidのパッケージの95%をCIマシンでのビルド & テストに自動インストール。
iOSプロビジョニングファイルをまとめて管理できるようになっている。
CIマシン + Jenkinsサーバで全てのgit pushのビルド作成。エンジニアにはIRC or emailで即フィードバックがくる。
社内向けに日次で最新ビルドを提供している。(社内向けお知らせpush notification)
Test Suite
データはAPI経由で、web viewの画面も多いので、web向けの充実したテストスイート を利用できる。
APIはwebスタックの単体テストとスモークテストで確認。モバイルアプリのコアロジックの多くはUIレイヤなので、機能テストが中心。QAチームがCalabash + Cucumberでテストを書く。
テストの流れは、ユーザ登録 / アイテム探し / カートに入れてプレイペイドのクレカで購入。(ビデオ) テストが完了すると、注文のキャンセルと払戻しが自動で行われる。
デバイスとOSバージョンの組み合わせもテストされ、クラッシュの確認もできる。
実機テスト用のデバイスは自社管理していたが、AppThwackのサービスに移行した。CIシステムとAppThwackをどううまくつなぎ込むかはこれからの課題。(例えば、200機のデバイスで支払テストを平行稼働させるのに、テストアカウント200個つくるのか?など。)
GitHub pull request builder Jenkins plugin でビルド & 静的コード分析(OCLint )をして、結果をGitHub issueにフィードバックする。(画面)
Mobile CI Infrastructure
#ios #android #テスト #継続的インテグレーション #自動化