複数のiOSプロジェクトの継続的統合インフラストラクチャ


13

iOS開発者として、私はこれまでに開発中のiOSプロジェクト用にCIおよびCCQ(= Continuous Code Quality)インフラストラクチャを作成しようとしていました。ほぼすべてのWebおよびAndroidプロジェクトにJenkinsとSonarQubeを使用しています(VM foreachプロジェクトを使用し、CIとCCQのインストールと構成は自動化されています)。しかし、iOSプロジェクトの場合、JenkinsはmacOSを実行しているコンピューターでビルドを行う必要があるため、そのための完璧なソリューションがあるかどうかはわかりません。

  • macOSを仮想化するソリューションを探していました。各プロジェクトで、仮想macOSを作成し、ビルドを処理するためにそこにJenkinsをスレーブとしてインストールします。ソリューションは完璧に見えましたが、macOSで2つ以上のVMを実行することは違法であるようです(もちろん、Macコンピューターでのみ) http://images.apple.com/legal/sla/docs/macOS1012.pdf ->ポイント2.B。したがって、これは私の場合の解決策ではありません。
  • 私が読んだ別の一般的な解決策は、すべてのプロジェクトのすべてのビルドを処理するMacコンピューター(MacMiniかもしれません)を持つことです。この実装についてどう思いますか?いくつのプロジェクトを処理できますか?開発者は自分のプロジェクト(特にSonarQube)でいくつかの設定を行う必要があるかもしれませんが、安全ですか?
  • 異なるポートを使用して、同じマシン上で複数のJenkinsおよびSonarQubeインスタンスを使用できますか?これは考慮すべき解決策でさえありますか?
  • 上記のソリューションよりも優れている可能性のある他の実行可能なソリューションはありますか?

注:Jenkins + SonarQubeのデュオにはこだわりません。iOS開発に適した他のツールがある場合は、それらを共有してください。


@ Pierre.Vriens:継続的なコード品質です。これが一般的に使用される用語なのか、単にSonarQubeが使用するのかはわかりません。:)
ダンボドナー

回答:


10

上記のソリューションよりも優れている可能性のある他の実行可能なソリューションはありますか?

あなたが言及したライセンスの問題のために、Jenkinsの場合はおそらくないでしょう(AppleブランドのハードウェアでmacOSを実行する必要があります)。あなたがそれで働くことができれば、それは間違いなく解決策です。

そうでない場合は、ホストされたiOSの継続的統合システムを確認することをお勧めします。Appleのハードウェア/ライセンスを処理する必要はありません。サービスが管理します(例:https://www.bitrise)。 io

Apple hwをレンタルして好きなように設定できるサービスもあります。https://www.macstadium.comはそのうちの1つ(おそらく最大のもの)です。


1
返事をありがとう。私はまだ解決策を探しています。今のところ、MiniMacが最適な方法だと思います。
ダンボドナー

2

Ankaと呼ばれるmacOS用の新しい軽量仮想化もご覧になると思います。Anka Buildを使用すると、Appleハードウェアに仮想化インフラストラクチャをセットアップし、JenkinsからmacOS Vmsをオンデマンドでプロビジョニングできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.