Infrastruktura ciągłej integracji dla wielu projektów iOS


13

Jako programista iOS chciałem stworzyć infrastrukturę CI i CCQ (= Continuous Code Quality) dla projektów iOS, które do tej pory opracowywaliśmy. Używamy już Jenkins i SonarQube do prawie wszystkich projektów internetowych i Androida (za pomocą projektu Foreach VM, instalacja i konfiguracja CI i CCQ jest zautomatyzowana) i działa świetnie. Ale w przypadku projektów iOS Jenkins musi wykonać kompilację na komputerze z systemem macOS, więc nie jestem pewien, czy mam na to idealne rozwiązanie.

  • Szukałem rozwiązania do wirtualizacji macOS. Dla każdego projektu, aby utworzyć wirtualny macOS i zainstalować Jenkins jako slave tam do obsługi kompilacji. Rozwiązanie wyglądało idealnie, ale wydaje się, że nie jest dozwolone, aby więcej niż 2 maszyny wirtualne działały z systemem macOS (i oczywiście tylko na komputerze Mac) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> Punkt 2.B. To nie jest rozwiązanie dla mojej sprawy.
  • Innym popularnym rozwiązaniem, o którym czytałem, jest posiadanie komputera Mac (może MacMini), który będzie obsługiwał wszystkie kompilacje wszystkich projektów. Co sądzisz o tym wdrożeniu? Ile projektów może obsłużyć? Deweloperzy mogą potrzebować konfiguracji w swoim projekcie (zwłaszcza w SonarQube), czy jest to bezpieczne?
  • Czy możemy mieć wiele instancji Jenkins i SonarQube na tym samym komputerze, używając różnych portów? Czy jest to nawet rozwiązanie, które należy rozważyć, czy mówię bezsensownie?
  • Czy jest jakieś inne realne rozwiązanie, może lepsze niż powyższe :)?

Uwaga: nie trzymam się duetu Jenkins + SonarQube, jeśli są jakieś inne narzędzia, które lepiej nadają się do tworzenia iOS, proszę podziel się nimi ze mną.


@ Pierre.Vriens: to ciągła jakość kodu. Nie jestem pewien, czy jest to termin powszechnie używany, czy tylko SonarQube go używa. :)
Dan Bodnar

Odpowiedzi:


10

Czy jest jakieś inne realne rozwiązanie, może lepsze niż powyższe :)?

Dla Jenkinsa prawdopodobnie nie, z powodu wspomnianych problemów licencyjnych (musisz uruchomić macOS na sprzęcie marki Apple). Jeśli możesz z tym pracować, to zdecydowanie jest to rozwiązanie.

Jeśli nie, sugeruję sprawdzenie hostowanego systemu ciągłej integracji iOS, w którym nie musisz zajmować się sprzętem / licencjonowaniem Apple, usługa będzie zarządzać nim za Ciebie, np . Https: //www.bitrise. io

Istnieją również usługi, w których możesz wypożyczyć Apple HW i możesz go skonfigurować w dowolny sposób, https://www.macstadium.com jest jednym z nich (prawdopodobnie największym).


1
Dzięki za odpowiedź. Wciąż szukam rozwiązania. Myślę, że MiniMac jest na razie dobrym rozwiązaniem.
Dan Bodnar

2

Myślę, że można także spojrzeć na nową lekką wirtualizację dla systemu macOS o nazwie Anka . Anka Build może umożliwić skonfigurowanie zwirtualizowanej infrastruktury na sprzęcie Apple i umożliwić dostarczanie MacOS Vms na żądanie od Jenkins.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.