2009-07-24 15 views
12

mi equipo usa actualmente buildbot para automatizar compilaciones y pruebas de regresión durante la noche y de integración continua. Para compilaciones y pruebas unitarias, el constructor solo invoca una secuencia de comandos que sincroniza las fuentes de p4 y luego ejecuta xcodebuild. Las pruebas de regresión también se inician con un script de shell y son en sí mismas combinaciones de scripts de shell y AppleScripts. Todas las construcciones se realizan en un sistema, pero luego buildbot activa pruebas en múltiples Mac, con diferentes combinaciones de arquitectura y sistema operativo. Las cosas que me gustan de Buildbot son los desencadenantes automáticos (por lo que las pruebas se ejecutan solo si la compilación tiene éxito) y los informes que incluyen la vista de cascada para ver el estado general.¿Qué sistema de compilación automatizado usan los desarrolladores de Mac?

Sin embargo, veo una serie de problemas también. El proceso "maestro" que coordina las compilaciones tiene fugas o simplemente tiene un gran conjunto de trabajo, lo que significa que consume un par de gigabytes de memoria. Ocasionalmente, los problemas de red significan que un esclavo se perderá; en lugar de volver a intentar más tarde, simplemente fallará la compilación. De hecho, si se supone que el esclavo debe activarse para una construcción dependiente, fallará la primera compilación después de que se haya completado con éxito.

¿Qué utilizan los demás para automatizar sus compilaciones de Xcode y las pruebas unitarias? ¿Cómo funcionan esas soluciones para usted? ¿Algo que recomendarías?

+0

Puede valer la pena hacer esta Wiki de la comunidad como sus opiniones – AutomatedTester

+2

no lo creo - Estoy pidiendo comparaciones técnicas de varias soluciones, no que webcomic es su favorito. –

Respuesta

5

Uso TeamCity en un entorno de Windows pero creo que funcionará en Mac y tiene agentes de compilación xcode.

Otra pregunta similar here.

4

Nuestro equipo utiliza Hudson con una secuencia de comandos que convierte la salida de Prueba de unidad de formato XCode a NUnit.

1

Elaboramos lo que estaba usando toda la memoria - archivos de registro - buildbot anterior guarda todos los registros para siempre y los mantiene en la memoria (posiblemente hasta un reinicio).

El buildbot más reciente se puede configurar para mantener una cantidad fija de historial.

Los archivos de registro Build Build deben tener un tamaño limitado para evitar el problema.

+0

Eso está bien :-) Creo que la succión de la memoria fue el problema principal, la disponibilidad de esclavos es molesta, pero se puede solucionar teniendo una red decente. –

1

Uso el XcodeBuilder que es parte de CruiseControl. Por supuesto, ayuda que lo haya escrito. :)

Pero sí lo usé en un proyecto de varias personas para una aplicación de iPhone (Surf) que está a la venta en la tienda de aplicaciones.

2

Sé que esta es una pregunta anterior, pero para aquellos que usan TFS para llevar a cabo sus proyectos Xcode, creé una actividad de compilación personalizada para facilitar la automatización de compilaciones de Xcode a través de TFS. El código está alojado en Codeplex aquí: http://tfsxcodebuild.codeplex.com/.

¡Espero que alguien lo encuentre útil!

0

Ahora que tengo tres años más tarde tengo mi propia respuesta para responder a esta pregunta. Estoy usando Jenkins, principalmente para los complementos que proporciona. Tiene un complemento para construir objetivos en proyectos Xcode (o esquemas en espacios de trabajo). Hay un complemento para ejecutar Clang static analyzer. Interactúa con mi sistema de seguimiento de fallas, también impulsará automáticamente las compilaciones a Testflight.

Cuestiones relacionadas