Continuous Integration-Infrastruktur für mehrere iOS-Projekte


13

Als iOS-Entwickler wollte ich eine CI- und CCQ-Infrastruktur (= Continuous Code Quality) für die iOS-Projekte erstellen, die wir bisher in der Entwicklung haben. Wir verwenden Jenkins und SonarQube bereits für fast alle Web- und Android-Projekte (die Installation und Konfiguration von CI und CCQ erfolgt mithilfe eines VM foreach-Projekts automatisch) und es funktioniert hervorragend. Für die iOS-Projekte muss Jenkins jedoch auf einem Computer mit MacOS erstellt werden. Daher bin ich mir nicht sicher, ob ich die perfekte Lösung dafür habe.

  • Ich habe nach einer Lösung gesucht, um das macOS zu virtualisieren. Erstellen Sie für jedes Projekt ein virtuelles MacOS und installieren Sie dort Jenkins als Slave, um die Builds zu verwalten. Die Lösung sah perfekt aus, aber es scheint nicht legal zu sein, mehr als 2 VMs mit macOS laufen zu lassen (und natürlich nur auf Mac-Computern) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> Der Punkt 2.B. Das ist also keine Lösung für meinen Fall.
  • Eine andere gängige Lösung, über die ich gelesen habe, ist ein Mac-Computer (möglicherweise ein MacMini), der alle Builds für alle Projekte verwaltet. Was halten Sie von dieser Implementierung? Wie viele Projekte kann es behandeln? Entwickler müssen möglicherweise einige Konfigurationen in ihrem eigenen Projekt vornehmen (insbesondere in SonarQube). Ist dies sicher?
  • Können auf demselben Computer mehrere Jenkins- und SonarQube-Instanzen mit unterschiedlichen Ports ausgeführt werden? Ist das überhaupt eine Lösung oder spreche ich sinnlos?
  • Gibt es eine andere praktikable Lösung, vielleicht besser als die oben genannten :)?

Hinweis: Ich halte mich nicht an Jenkins + SonarQube duo. Wenn es andere Tools gibt, die besser für die iOS-Entwicklung geeignet sind, teilen Sie sie mir bitte mit.


@ Pierre.Vriens: Es ist kontinuierliche Codequalität. Ich bin mir nicht sicher, ob dies ein allgemein gebräuchlicher Begriff ist oder nur SonarQube ihn verwendet. :)
Dan Bodnar

Antworten:


10

Gibt es eine andere praktikable Lösung, vielleicht besser als die oben genannten :)?

Für Jenkins wahrscheinlich nein, aufgrund der von Ihnen erwähnten Lizenzprobleme (Sie müssen macOS auf Apple-Hardware ausführen). Wenn Sie damit arbeiten können, dann ist es definitiv eine Lösung.

Wenn nicht, empfehlen wir Ihnen, nach einem gehosteten iOS Continuous Integration-System zu suchen, bei dem Sie sich nicht mit der Apple-Hardware / -Lizenzierung befassen müssen. Der Dienst verwaltet dies für Sie, z . B. https://www.bitrise. io

Es gibt auch Dienste, bei denen Sie Apple hw mieten und nach Belieben konfigurieren können. Https://www.macstadium.com ist einer von ihnen (wahrscheinlich der größte).


1
Danke für die Antwort. Ich suche noch nach einer Lösung. Ich denke, ein MiniMac ist der richtige Weg.
Dan Bodnar

2

Ich denke, Sie können sich auch die neue Lightweight-Virtualisierung für MacOS namens Anka ansehen . Mit Anka Build können Sie eine virtualisierte Infrastruktur auf Apple-Hardware einrichten und MacOS Vms bei Bedarf von Jenkins bereitstellen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.