En tant que développeur iOS, je cherchais à créer une infrastructure CI et CCQ (= Continuous Code Quality) pour les projets iOS que nous avons en développement jusqu'à présent. Nous utilisons déjà Jenkins et SonarQube pour presque tous les projets Web et Android (en utilisant un projet VM foreach, l'installation et la configuration des CI et CCQ sont automatisées) et cela fonctionne très bien. Mais pour les projets iOS, Jenkins doit faire la construction sur un ordinateur exécutant macOS, donc je ne suis pas sûr d'avoir la solution parfaite pour cela.
- Je cherchais une solution pour virtualiser le macOS. Pour chaque projet, créer un macOS virtuel et y installer Jenkins comme esclave pour gérer les builds. La solution avait l'air parfaite, mais il semble qu'il ne soit pas légal d'avoir plus de 2 VM fonctionnant avec macOS (et bien sûr, uniquement sur un ordinateur Mac) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> Le point 2.B. Ce n'est donc pas une solution pour mon cas.
- Une autre solution courante que j'ai lue est d'avoir un ordinateur Mac (peut-être un MacMini) qui gérera toutes les versions pour tous les projets. Que pensez-vous de cette implémentation? Combien de projets peut-il gérer? Les développeurs peuvent avoir besoin de faire certaines configurations sur leur propre projet (en particulier dans SonarQube), est-ce sûr?
- Peut-on avoir plusieurs instances Jenkins et SonarQube sur la même machine, en utilisant des ports différents? Est-ce même une solution à considérer ou je parle de non-sens?
- Existe-t-il une autre solution viable, peut-être meilleure que celles ci-dessus :)?
Remarque: je ne m'en tiens pas au duo Jenkins + SonarQube, s'il existe d'autres outils mieux adaptés au développement iOS, veuillez les partager avec moi.