Infrastructure d'intégration continue pour plusieurs projets iOS


13

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.


@ Pierre.Vriens: c'est la qualité du code continu. Je ne sais pas si c'est un terme généralement utilisé, ou simplement SonarQube l'utilise. :)
Dan Bodnar

Réponses:


10

Existe-t-il une autre solution viable, peut-être meilleure que celles ci-dessus :)?

Pour Jenkins probablement non, en raison des problèmes de licence que vous avez mentionnés (vous devez exécuter macOS sur du matériel de marque Apple). Si vous pouvez travailler avec cela, c'est certainement une solution.

Sinon, je vous suggère de vérifier un système d'intégration continue iOS hébergé où vous n'avez pas à gérer le matériel / les licences Apple, le service le gérera pour vous, par exemple https: //www.bitrise. io

Il existe également des services où vous pouvez louer Apple hw et vous pouvez le configurer comme vous le souhaitez, https://www.macstadium.com est l'un d'entre eux (probablement le plus grand).


1
Merci pour la réponse. Je cherche toujours une solution. Je pense qu'un MiniMac est la voie à suivre pour l'instant.
Dan Bodnar

2

Je pense que vous pouvez également envisager une nouvelle virtualisation légère pour macOS appelée Anka . Anka Build peut vous permettre de configurer une infrastructure virtualisée sur du matériel Apple et vous permettre de provisionner macOS Vms à la demande à partir de Jenkins.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.