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ą.
jenkins
continuous-integration
ios
Dan Bodnar
źródło
źródło
Odpowiedzi:
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).
źródło
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.
źródło