54

Después de usar Hudson para una integración continua con un proyecto anterior, quiero configurar un servidor de integración continua para los proyectos de iPhone en los que estoy trabajando ahora. Después de investigar un poco, parece que no hay ningún motor de CI diseñado específicamente para Xcode, pero un tipo ha tenido éxito using Cruise Control combined with the xcodebuild CLI tool. ¿Alguien ha intentado esto? ¿Hay algún motor de CI que funcione bien con los proyectos de Xcode?Integración continua para proyectos Xcode?

Probablemente voy a probar Cruise Control. Publicaré una respuesta con mis hallazgos.

+0

El enlace del comentario anterior no funciona el logner –

+0

Compruebe [rultor.com] (http://www.rultor.com). Es una solución alojada que [ejecuta todas las compilaciones en contenedores Docker aislados] (http://www.yegor256.com/2014/07/29/docker-in-rultor.html). Por lo que sé, es posible ejecutar Xcode en Docker – yegor256

+0

@ yegor256 ¿es realmente posible ejecutar Docker con Xcode? No encontré la imagen base con OS X en Docker Hub :( – Ponf

Respuesta

36

Estoy utilizando Hudson con éxito en mac con xcodebuild. Con el lanzamiento de la versión 3.0 del iPhone sdk, usted puede competir por el control del objetivo, la configuración y el SDK con los que se construirá el proyecto.

Es tan simple como crear un paso de generación en Hudson y contando xcodebuild para construir el proyecto:

xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1 

El trabajo inicial ha valido la pena para mí como mi builds sólo el trabajo sin ningún pensamiento adicional. He escrito una descripción detallada en mi blog si alguien está interesado.

iPhone app distribution made easy

+0

su enlace se resuelve en una "Página no encontrada". :( – Spanky

+1

@Spanky - Actualicé el enlace al blog de Silencode. – itsmatt

9

Adium está utilizando buildbot con Xcode con bastante eficacia. Escribimos un archivo make simple que llama a xcodebuild con los objetivos y configuraciones adecuados, pero estoy bastante seguro de que es opcional.

+0

Gracias, lo comprobaré –

+5

Adium rocks! (Uh ... disculpa por el comentario fuera del tema. No pude resistir la oportunidad de mostrar algo reconocimiento) – pestophagous

4

Creo que todavía debería poder usar Hudson. Hudson es muy flexible y le permite usar también scripts de shell para construir: Shell Scripts and Windows Batch Commands

Simplemente ingrese allí xcodebuild. Eche un vistazo a la página man de xcodebuild para ver las opciones de xcodebuild.

8

He usado CruiseControl con Xcode (similar a lo que Pragmatic Automation sugirió) y tuve un éxito razonable. También estoy muy familiarizado con CruiseControl y su configuración de formato de configuración es bastante horrible.

También utilicé BuildBot con buenos resultados, pero descubrí que sus puntos fuertes realmente no coincidían con mis necesidades (creación distribuida de esclavos e informes en múltiples sistemas diferentes). La configuración de las configuraciones de buildbot puede ser un arte en sí mismo, aunque no es difícil. Básicamente se trata de escribir scripts en Python.

Desde que Hudson estuvo disponible, lo recomendaría como una vía para ejecutar una integración continua. Tiene una interfaz basada en web (la principal deficiencia de CruiseControl en mi mente) y es muy flexible en los diversos sistemas que admite. Puede invocar compilaciones dirigidas por línea de comando con bastante facilidad y muy obviamente. Dicho esto, no he configurado una instancia usando Hudson y Xcode, donde tengo para los demás sistemas, por lo que esto es parcialmente especulativo por mi parte.

4

Si no te importa vivir a la vanguardia, he cometido un xcode builder para CruiseControl.

13

Resurrecting este hilo. No encontré una solución satisfactoria para obtener versiones XCode automatizadas con pruebas unitarias en un servidor de compilación, así que investigué y codifiqué. El resultado es this blog post que lo explica todo y this Ruby script que convierte la salida OCUnit de xcodebuild al formato XML que JUnit usa para los informes de prueba. El servidor de compilación que elegí fue Hudson.

Actualización 3/2 2012: He actualizado esto para usar algunos scripts de shell personalizados para compilar y ejecutar.Disponible here. Es bueno no solo para la integración continua, sino también para construir desde la línea de comandos en su propia máquina.

0

Jenkins funciona bien. Puede construir su proyecto xcode escribiendo su propio script de shell y luego dejar que Jenkins lo ejecute, o también puede usar el complemento xcode.

Pero debe tener en cuenta el problema de autoridad. Con pequeños ajustes en las configuraciones de Jenkins, podrá administrar su servidor de CI en muy poco tiempo.

9

Apple acaba de lanzar (10 de junio de 2013) para OSX Mavericks (OS X 10.9) una nueva plataforma de integración continua que es la solución de integración continua más integrada que he visto antes. Está disponible en developer.apple.com, aquí en esta página tiene los detalles:

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/

me recomiendan para ver la presentación de la WWDC 2013 sobre el tema.

+0

¡Esto es genial! Xcode finalmente obtuvo algunas herramientas de prueba adecuadas – LightningStryk

Cuestiones relacionadas