オープンソースiOSプロジェクト用のTravis-CIの構成

継続的インテグレーション(継続的インテグレーション)-開発プラクティス。これにより、プロジェクトの作業の安定性と正確性に対する信頼を高めることができます。 オープンソースプロジェクトも例外ではありません。



約2か月前の2013年4月に、 SauceのラボはTravis CIサーバーのiOS / Macサポートを発表しました。 サービス自体はかなり前から存在しており、 多数の言語のサポートと使いやすさから、オープンソースコミュニティで非常に人気があります。 このサービスは、GitHubユーザーおよびオープンなリポジトリに対して無料です。 Habréには、Rubyプロジェクトをテストするためのサービスとその設定に関する投稿が既にあります。この記事では、Travis-CIでiOSプロジェクトの自動ビルドビルドを設定するサービスのより具体的な側面についてお話したいと思います。 この記事の主な焦点は、CocoaPods + Cedar + Travis CIバンドルになりますが、このトピックに関連する他のことについて少しお話ししようと思います。



それでは始めましょう。



この記事とは関係ありませんが、Travis CIに関連したいgithubプロジェクトがあります。 プロジェクトはCocoaPodsを使用し、すべてのテストはCedarフレームワークを使用して記述されています。



最初のステップ。 githubリポジトリを接続する



サービスWebサイトにアクセスし、githubアカウントを使用してログインします。 プロファイル設定に進み、ビルドとテストを実行するリポジトリをオンにします。



ステップ2 構成ファイルの構成



ほとんどの設定は.travis.ymlファイルで行われ、リポジトリのルートフォルダーに配置する必要があります。 その過程で、 travis-lintは有用である可能性があります。このファイルの正当性を検証できるgemをカットします。



最初のステップは、ビルドを実装するプログラミング言語を設定することです。



language: objective-c
      
      





次のステップは、プロジェクトに必要なすべてのgemと依存関係を構成することです。 Travisワーカーの次の作業手順は次のとおりです。





これらのコマンドの成功(after_success / after_failureおよびafter / acriptを除く)は、戻り値によって決まります。 標準のLinuxコード0は、ビルドが成功したことを意味します。 それ以外はすべて失敗と見なされます。 必要な依存関係を構成するには、before_installステップを使用します。



特に、ios_sim gemを使用して、シミュレーターでテストを実行します。 便利なことに、TravisにはHomebrewがプリインストールされているため、gemのインストールは次の形式になります



 before_install: - brew install ios_sim
      
      





少し先に走りましょう。 シミュレータでビルドを実行するだけでは十分ではありません。Cedar-テストの結果を取得することも重要です。 ios_ci gemはこれを支援し、プロジェクトの構築、シミュレーターでの実行、テスト結果の取得を可能にします。 gemを配置します。



  - gem install ios_ci
      
      





次の構成手順はオプションであり、選択したプロジェクトの特定のフォルダー構造に関連しています。 Xcodeプロジェクトファイルは、リポジトリのルートディレクトリではなく、サンプルディレクトリにあります。 したがって、現在のディレクトリをプロジェクトのあるディレクトリに変更します。



  - cd Example
      
      





最後のセットアップ手順はCocoaPodsをインストールすることでしたが、TravisはPodfileディレクトリで見つかった場合にこれを自動的に行うため、セットアップが完了し、アセンブリに進むことができます。



ステップ3 プロジェクトのビルドとテストの開始



テストを直接実行するスクリプトに渡します。 これは、Sedarスクリプトやmakeコマンドである必要はないことを理解する必要があります。 実際、Travis CIがスクリプトステップに提示する唯一の要件は、値を返すことです。 0は成功、それ以外はすべて失敗です。 したがって、必要な方法でプロジェクトをビルドでき、組み込みOCUnitを含む任意のテストフレームワークを使用できます。



ios_ci gemの要件の1つは、正しく動作するために、プロジェクトのルートディレクトリをソースとともに転送する必要があることです。 この目的のために、Travis環境変数の1つ-リポジトリのルートフォルダーを含む$ TRAVIS_BUILD_DIRを使用します(使用可能なすべての環境変数はここで表示できます )。



プロジェクトを構築してテストを実行するチームは、十分に簡潔に見えます。



 script: ios_ci cedar --source-root $TRAVIS_BUILD_DIR/Example --workspace DTTableViewManager.xcworkspace --scheme CedarUnitTests --build-path Build/Products
      
      





したがって、完全な.travis.ymlファイルは次のようになります。



 language: objective-c before_install: - gem install ios_ci - brew install ios-sim - cd Example script: ios_ci cedar --source-root $TRAVIS_BUILD_DIR/Example --workspace DTTableViewManager.xcworkspace --scheme CedarUnitTests --build-path Build/Products
      
      







ステップ4 利益



あとは、ブランチの1つにコミットして、変更をgithubにプッシュするだけです。 Travis-CIは自動的にビルドをスケジュールし、1〜2分以内にプロジェクトの組み立てを開始します。 すべてがうまくいけば、ステータスは緑に変わり、そうでなければ赤になります。 同時に、アセンブリの成功または失敗に関するメッセージがメールに送信されます。



追加のTravis-CIパン



1.ビルドを起動するリポジトリブランチを選択する機能。



 branches: only: - master - develop
      
      





したがって、Travisは、これら2つのブランチで行われたコミットに対してのみビルドを収集します。 同様に、ブラックリストにブランチを追加できます。



 branches: except: - legacy - experimental
      
      







2.プルリクエストのビルドを自動的に起動する機能。 さらに、ビルドのステータスは、githubページのプルリクエストに直接表示されます。



画像



3. バッジ



画像



バッジは、次のフォームのリンクにすぎません



 https://travis-ci.org/[YOUR_GITHUB_USERNAME]/[YOUR_PROJECT_NAME].png?branch=master,staging,production
      
      







この記事では、Travis-CIでビルドをセットアップするために必要な最小限のもののみを示します。 このサービスの機能ははるかに優れています。たとえば、有名なRestKitフレームワークはTravisを使用してビルドとテストを構築するだけでなく、 appledocを使用してドキュメントを生成します



あなたの注意とオープンソースプロジェクトの成功に感謝します!



参照資料



1. この記事には関係ありませんが、良いフレームワークです

2. Travis-CI

3. Ruby habrostatka-Travis-CIでのテスト

4. Travis-CIサービスドキュメント

5. CI-iOSアプリケーションをテストするためのgem

6. トラビス-リント



All Articles