2016-10-21 14 views
0

私はXamarin iOSプロジェクトを構築する方法を決定しようとしていますが、他のプロジェクトとのアーチファクトはそのままです。すべてのコードは単一のソリューションに含まれており、複数のUIプロジェクト(WinForms、Webサイト、UWP、W8.1/WP8.1、Android用のXamarinプロジェクト)があります。私たちのTeamCity(10)サーバーはWindows上でホストされており、Mac上で実行する必要があるiOSプロジェクト以外のすべてを構築できます。Xamarin iOSプロジェクト&ビルドサーバ

私はiOS以外のすべてをビルドするように設定されており、Macビルドエージェントを使用してiOSのビルドを行うために別のビルド設定をセットアップすることができました。どちらの設定も、同じSVN VCSをトリガに使用します。

これは機能しますが、理想的には、iOS設定の成果物とメイン設定の成果物を組み合わせることができます。

私はまた、両方のビルドが常に同じソースからビルドされることを確認したいと思います。スナップショットの依存関係を設定することでこれを行うことができるように見えますが、iOSの設定ではトリガー前にメイン設定が完了するのを待っています。理想的には両方が実行され、結果が最終的に結合されます。

私の質問は、これをどのように達成できますか?コンパイルのステップが同時に発生する可能性があり、いずれかの設定がコンパイル・ステップに失敗した場合、メイン・ビルドはユニット・テスト/デプロイメント・ステップを続行しません。必要に応じてメインビルド構成をさらに分割することは可能ですが、TeamCityサーバーはWindows上にとどまる必要があります(したがって、Mac上のすべての作業はオプションではありません)。

+0

MACでWindows VM(ParallelsまたはVmWare)を実行する方法について説明します。 TeamCityはWIndows VM上に置くことができ、MAC –

+0

@YuriSでファイルを簡単に共有することができます。アーティファクトの依存関係はその特定の問題を解決する可能性がありますが、私はこの作品を作るためにどのような部分があるのか​​よく分かりません。 – Andy

答えて

0

ビルドを3つの別々の構成に分割することでこれを実行できました。 iOSビルドのみを実行したもの、Windows/Androidプロジェクトをビルドしたもの、そして3つ目は他の2つの構成からの依存関係を取り、ビルドプロセス(ユニットテスト、パッケージングなど)を続けました。すべてのソースが同じソースを使用するように、最終的なビルド構成にアーティファクト依存とスナップショット依存をセットアップする必要がありました。

iOSとandroid/Windowsの両方のビルドが起動され、同時に実行され、どちらかが失敗すると3番目の設定が開始されません。

関連する問題