Xcodeプロジェクトの継続的統合?
-
03-07-2019 - |
質問
Hudsonを使用して以前のプロジェクトとの継続的統合を行った後、現在取り組んでいるiPhoneプロジェクト用に継続的統合サーバーをセットアップしたいと思います。いくつかの調査を行った後、Xcode専用に設計されたCIエンジンはないようですが、1人の男が xcodebuild CLIツールと組み合わせたCruise Controlの使用。ここで誰かがこれを試しましたか? Xcodeプロジェクトでうまく機能するCIエンジンはありますか?
おそらく、Cruise Controlを試してみるつもりです。調査結果とともに回答を投稿します。
解決
Macでxcodebuildを使用してHudsonを正常に使用しています。 3.0 iPhone SDKのリリースにより、プロジェクトのビルド対象となるターゲット、構成、およびSDKを完全に制御できます。
hudsonでビルドステップを作成し、xcodebuildにプロジェクトをビルドするよう指示するのと同じくらい簡単です。
xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1
前もっての作業は、私のビルドが何も考えなくても機能するため、私にとっては報われました。誰かが興味を持っているなら、私のブログに詳細な説明を書きました。
他のヒント
このスレッドを復活させます。ビルドサーバーで単体テストを使用して自動化されたXCodeビルドを取得するための満足できるソリューションが見つからなかったため、調査とコーディングを行いました。結果はこのブログ投稿の説明ですit allおよび OCcode出力をxcodebuildからJUnitがテストレポートに使用するXML形式に変換するこのRubyスクリプト 。選んだビルドサーバーは Hudson です。
2012年3月2日更新:これを更新して、ビルドと実行にカスタムシェルスクリプトを使用しました。 こちらで入手できます。継続的な統合だけでなく、自分のマシンのコマンドラインから構築するのにも適しています。
AdiumはXcodeで buildbot を非常に効果的に使用しています。適切なターゲットと構成でxcodebuildを呼び出す簡単なmakefileを作成しましたが、これはオプションであると確信しています。
Appleは、OSX Mavericks(OS X 10.9)の新しい統合プラットフォームをリリースしました(2013年6月10日)。 developer.apple.comから入手できます。このページの詳細は次のとおりです。
このトピックに関するwwdc 2013プレゼンテーションをご覧になることをお勧めします。
XcodeでCruiseControlを使用し(Pragmatic Automationが提案したものと同様)、妥当な成功を収めました。また、CruiseControlにも精通しており、構成フォーマットの設定は比較的恐ろしいものです。
BuildBotも効果的に使用しましたが、その強みが実際にはニーズに合わないことがわかりました(複数の異なるシステムにまたがるスレーブの構築とレポート作成)。 buildbotセットアップの構成は、それ自体が芸術である場合がありますが、難しくはありません。基本的にすべてPythonでスクリプトを記述しています。
Hudsonが利用可能になったので、継続的な統合を実行する手段としてHudsonをお勧めします。 Webベースのインターフェイス(CruiseControlの主な欠点)があり、サポートするさまざまなシステムで非常に柔軟です。コマンドライン駆動のビルドを非常に簡単かつ非常に明らかに呼び出すことができます。とは言っても、他のシステム用のHudsonとXcodeを使用してインスタンスをセットアップしていないため、これは私の一部の推測です。
Hudsonを引き続き使用できるはずです。 Hudsonは非常に柔軟性があり、ビルドにシェルスクリプトを使用することもできます。シェルスクリプトとWindowsバッチコマンド
そこにxcodebuildと入力するだけです。 xcodebuildのmanページを見て、xcodebuildのオプションを確認してください。
最先端で生きることを気にしないなら、私は CruiseControlのxcodeビルダー。
Jenkinsは一部の人にとってはうまくいくようです。 (ただし、以前にCIサーバーを使用したことはありません。)
ジェンキンスは正常に動作します。 独自のシェルスクリプトを記述してJenkinsに実行させるか、xcodeプラグインを使用して、xcodeプロジェクトをビルドできます。
ただし、権限の問題に注意する必要があります。 Jenkins構成を少し調整するだけで、ごく短時間でCIサーバーを管理できるようになります。