継続的統合を実行するために bot を設定
ボットは、ソースコードリポジトリ内のプロジェクトの現在のバージョンに統合を実行するために Xcode サーバによって実行されるプロセスです。統合は、ボットの単一の実行です。統合は、ビルド、分析、テスト、および Xcode プロジェクトで定義されたアプリ (またはその他のソフトウェアのプロダクト) のアーカイブで構成されています。これらのプロジェクトのソースコードリポジトリにアクセスできるように Xcode サーバを使用すると、それらに継続的統合を実行するためにボットを構成することができます。
開発用 Mac の場合、スキーム は、あなたの製品をビルドするためのレシピです。スキーム は、ターゲット、ソース·ファイル、および製品を構成する他のすべてを含んでいます。また、どの操作が統合時にボットによって実行されるかを定義します。統合を自動化するには、そのスキームを共有し、所望の時間にそのスキームを使用して統合を実行するようにボットを作成します。ボットは実行するように設定できます:
- 変更はリポジトリにコミットされるたびに
- 毎時、毎日、または毎週、定期的なスケジュール上で
- 手動で開始すると
ビルドスキームを共有
スキームは、プロジェクトでどのターゲットをビルドするか指定し、どのビルド設定を使うか、および起動した時に使う実行環境を指定します。新しい iOS または OS X のプロジェクトを作成すると、Xcode はこれらのアクションを実行するための設定を含むデフォルト·スキームを作成します。
- 静的コード分析を実行する、分析
- 実装しているテストケースを全て実行する、テスト
- スキームビルドされたプロダクトのアーカイブをビルドする、アーカイブ
Xcode サーバは、プロジェクトにこれらのアクションを実行するために、プロジェクトのスキームを共有する必要があります。共有スキームは他の共有プロジェクトファイルと一緒に、リポジトリに公開するものです。
Xcode プロジェクトのスキームを共有するには
- 開発用の Mac 上で、共有するスキームを含むプロジェクトを調べて、開きます。
- [Product(プロダクト)] > [Scheme(スキーム)] > [Manage Scheme(スキームを管理)] を選択してください。
- スキームが共有するための [Shared(共有)] オプションを選択し、[Close(閉じる)] をクリックします。
- [Source Control(ソース管理)] > [Commit(コミット)] を選択します。
- [Shared Data(共有データ)] フォルダーを選択します。
- テキストフィールドにコミットメッセージを入力してください。
- (プロジェクトが Git で管理されている場合)"Push to remote(リモートへプッシュ)" オプションを選択します。
- [Commit Files(ファイルをコミット)] ボタンをクリックします。
スキームは、Xcode のビルドシステムの重要な部分です。アプリをビルドするスキームを選択 を読むことにより、スキームの詳細を学ぶことができます。継続的な統合を使用する目的のために、しかし、重要なタスクが共有され、ボットが使用するリポジトリにチェックインすることが選択したスキームを設定することです。スキームの管理の詳細については、スキームの編集、作成と管理 を参照して下さい。
統合の実行のためボットを作成
スキームを共有した後、スキームを使用して統合を実行するため bot を作成します。
bot を作成するには
- 開発用の Mac で、自動化するアクションを定義するスキームを含む Xcode のプロジェクトを開きます。
- [Product(プロダクト)] > [Create Bot(ボットを作成)] を選択し、ボットを識別する属性を指定します。
- [次へ]をクリックします。
- リポジトリの資格情報を入力します。それぞれのボットが、サーバ上の安全なキーチェーンに資格情報の独自のセットを格納しており、Xcode の設定でリポジトリの資格情報を追加した場合でも、これを実行する必要があります。
- スケジュールのポップアップメニューを使用して、統合スケジュールを指定します。
- 適切なチェックボックスをクリックして、ボットの動作を指定します。
- ビルドする前にプロダクトをきれいにするかどうかを選択します。
- [次へ]をクリックします。
- iOS アプリの場合、ボットがテストするデバイスまたはシミュレータの種類を選択して下さい。
- [次へ]をクリックします。
- ボットは、統合前と後のトリガを開始するように構成できます。トリガーは、統合前または後の独自のカスタムシェルスクリプトを実行したり、統合後通知するため電子メールをを送信することができます。デフォルトでは、ボットは障害が発生した場合コミッターに警告通知するようトリガする事を含んでいます。
- ボットをビルドするよう [Create(作成)] をクリックします。
ボットを作成したらログナビゲータの最初の統合の結果を確認するために "Integrate Immediately(すぐに統合する)" オプションを有効のままにしておきます。
目的のリポジトリを選択し、[Change(変更)] をクリックします。または、複数のリポジトリを選択して、[Change All(すべて変更)] をクリックします。プロンプトが表示されたら認証資格情報を入力し、[次へ]をクリックします。
定期的に統合を実行するようにボットをスケジュールする事ができます (時間単位、日単位、または週単位)。すべてコミットするか、手動かです。
静的分析、テスト、およびプロダクトのアーカイブを有効にすることができます。
きれいに統合を行う場合には、ボットは前回のビルドを再利用しません。各統合前、一日一回、週に一度、または決してきれいにしないから頻度を指定するために[Cleaning(クリーニング)] ポップアップメニューを使用してください。
デバイスは、テストアクションが完了するまで、サーバに接続している必要があります。
ボットからの電子メール通知を受信するユーザーを指定し、ニーズを満たすために他の設定を調整します。
次のスクリーンショットは、ボットが統合に成功した後に受信した電子メール通知の例を示しています。
必要に応じて、統合前または後に実行する追加のトリガーを設定することができます。
統合後のトリガーは、成功後、テスト失敗時に、ビルドエラー時に、ビルド警告時に、静的解析の警告時に、このような時に、条件付きで実行するように設定できます。
レポートナビゲータからのボットの管理および監視 で説明したように、手動でボットを開始し、ボットを編集し、それを削除するには、レポートナビゲータを使用できます。また、Web ブラウザからボットを監視< で説明したように、ボットの状態を監視し、統合資産をダウンロードし、iOS の製品をインストールするには、Webブラウザを使用できます。
次のビデオは、WWDC2014:Xcode 6 との継続的な統合 から抜粋次のビデオで、Xcode でボットを作成するプロセスを説明します。
また、次のビデオは WWDC2014:Xcode 6との継続的な統合 からの抜粋のビデオで、ボットの統合が作業をトリガーする方法を示しています。
ベストプラクティスに従う
プロダクトの開発ワークフローでの継続的統合を利用するには、以下のガイドラインに従って下さい:
- 開発テストスイートとテストケース。 開発テストの後、ボットを実行するためのスキームにそれを含めます。あなたや他人によってそれ以降破壊されていないことを確認するのを助けるため、メソッドまたは一連のメソッドが意図したとおりに、一連の関数で使用されていることを確かめるため、テストの変更で補足します。
- 静的分析の遂行統合に静的解析を含める。静的解析は、あなたのアプリが、通常の開発作業に従わないコードパスに従う、コードの詳しい検査です。このプロセスは、見つけにくいコーディングエラーを発見し、また、ファウンデーションや AppKit イディオムのような推奨 API の使用に従わないコード内の領域を特定して暴きます。
- パフォーマンステストを実施します。 複数のデバイス上のアプリのパフォーマンス·テストを実行するには、Xcode を構成します。これは、パフォーマンスを追跡し、ユーザーに製品を配布する前に、前もって潜在的な問題を特定できるようになります。
- あなたの製品がビルドされ、適切にパッケージ化されていることを確認してください。 主要な変更、特に構造的な変化、ファイルの追加や削除などを作製した後、製品をアーカイブして下さい。あなたのボットが自動的にアーカイブするのに任せましょう。あなたの製品をビルドし、アーカイブする機能は、コードの変更の正当性の主な指標です。
Xcode での広範囲なテスト機能の詳細については、Xcode でのテスト を参照してください。
前:ソースコードリポジトリへのアクセスを可能に
次:レポートナビゲータからのボットの管理および監視