Infraestructura de integración continua para múltiples proyectos de iOS

13

Como desarrollador de iOS, buscaba crear una infraestructura de CI y CCQ (= calidad de código continuo) para los proyectos de iOS que tenemos en desarrollo hasta ahora. Ya usamos Jenkins y SonarQube para casi todos los proyectos web y Android (el uso de un proyecto VM foreach, la instalación y configuración de CI y CCQ es automática) y funciona muy bien. Pero para los proyectos de iOS, Jenkins necesita hacer la compilación en una computadora con macOS, por lo que no estoy seguro de tener la solución perfecta para eso.

  • Estaba buscando una solución para virtualizar macOS. Para cada proyecto, crear un macOS virtual e instalar Jenkins como esclavo para manejar las compilaciones. La solución parecía perfecta, pero parece que no es legal tener más de 2 máquinas virtuales en ejecución con macOS (y, por supuesto, solo en la computadora Mac) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> El punto 2.B. Entonces esta no es una solución para mi caso.
  • Otra solución común sobre la que he leído es tener una computadora Mac (tal vez una MacMini) que maneje todas las compilaciones para todos los proyectos. ¿Qué opinas sobre esta implementación? ¿Cuántos proyectos puede manejar? Los desarrolladores pueden necesitar hacer algunas configuraciones en su propio proyecto (especialmente en SonarQube), ¿es seguro?
  • ¿Podemos tener varias instancias de Jenkins y SonarQube en la misma máquina, utilizando diferentes puertos? ¿Es esta una solución a considerar o estoy hablando sin sentido?
  • ¿Hay alguna otra solución viable, tal vez mejor que las anteriores :)?

Nota: no me quedo con el dúo Jenkins + SonarQube, si hay otras herramientas más adecuadas para el desarrollo de iOS, compártalas conmigo.

Dan Bodnar
fuente
@ Pierre.Vriens: es la calidad del código continuo. No estoy seguro de si este es un término generalmente utilizado, o solo SonarQube lo usa. :)
Dan Bodnar

Respuestas:

10

¿Hay alguna otra solución viable, tal vez mejor que las anteriores :)?

Para Jenkins, probablemente no, debido a los problemas de licencia que mencionó (debe ejecutar macOS en el hardware de la marca Apple). Si puedes trabajar con eso, definitivamente es una solución.

De lo contrario, le sugiero que busque un sistema alojado de integración continua de iOS donde no tenga que lidiar con el hardware / licencia de Apple, el servicio lo administrará por usted, por ejemplo, https: //www.bitrise. io

También hay servicios en los que puede alquilar Apple hw y puede configurarlo de la manera que desee, https://www.macstadium.com es uno de ellos (probablemente el más grande).

Viktor Benei
fuente
1
Gracias por la respuesta. Todavía estoy buscando una solución. Creo que un MiniMac es el camino a seguir por ahora.
Dan Bodnar
2

Creo que también puedes ver la nueva virtualización ligera para macOS llamada Anka . Anka Build puede permitirle configurar una infraestructura virtualizada en el hardware de Apple y permitirle aprovisionar macOS Vms a pedido de Jenkins.

Manisha
fuente