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ą.