7

Para facilitar nuestras pruebas de lanzamiento, estamos buscando un sistema para construir automáticamente y (unificar) probar nuestros proyectos de software en una variedad de arquitecturas. Nuestras limitaciones son:Servidor de compilación y prueba automatizado independiente del idioma para múltiples proyectos

  1. El código para construir está escrito en varios idiomas, incluyendo Python, Java y C
  2. Tenemos varias arquitecturas de despliegue distintos.
  3. Tenemos varios proyectos, que nos gustaría construir y probar de forma independiente.
  4. Nuestro sistema de control de fuente es Subversion, y el sistema debe integrarse con eso.
  5. La solución ideal debería ser de código abierto.

Hemos visto:

  • Artifactory + Continuum: Niza, en algunos aspectos, pero está muy centrado en Java, con un apoyo limitado o inexistente Python.

  • Buildbot: Esto nos proporciona casi todas las funcionalidades que necesitamos, excepto que no es compatible con varios proyectos, lo cual es un factor decisivo para nosotros.

¿Qué recomendarías? ¿Que usas?

+0

¿Cumple Perl con su definición de "servidor de compilación y prueba"? – Jared

+0

Perl? No estoy seguro de entender. ¿Puedes elaborar? –

+0

Fue una sugerencia de que podría tener que hacer rodar su propio sistema de compilación envuelto en un débil intento de humor. – Jared

Respuesta

4

¿Has mirado Hudson? Lo he usado en proyectos .Net con mucho éxito a pesar de que es una herramienta algo centrada en Java. Admite subversión y tiene una comunidad de complementos activa y diversa que le permite trabajar con muchos idiomas diferentes. Es de código abierto y se ejecuta en muchas plataformas. Descubrí que es relativamente fácil de configurar y administrar.

+0

He estado creando prototipos, y parece que podría encajar en la factura. Aceptando esta respuesta ya que no parece haber muchas otras buenas alternativas ... –

1

Desde que me alejé de buildbot he estado usando cruisecontrol y he estado satisfecho con él hasta cierto punto. Mis proyectos actuales consisten en construir C++ & ruby ​​(con algunas extensiones c) para varias arquitecturas y con la única queja es que la mayoría de las características requieren ant. Y actualmente la única instancia de cc está construyendo aproximadamente 40 proyectos diferentes. Las fases de compilación consisten en ejecutar pruebas de unidad, algunas pruebas funcionales, obtener cobertura de código y hacer un informe de las mismas, actualizar la base de datos de paquetes, integración IRC, creación de paquetes de software y repositorio update (debian)

La única queja es que la mayoría de las características más sofisticadas requerirían que (al menos cuando esté dentro del ciclo de compilación de cc) la construcción esté sucediendo con la hormiga.

También he evaluado hudson, parece ser algo más flexible que cruisecontrol pero personalmente no me gusta la interfaz de configuración.

+0

PS. La razón de alejarse de buildbot también fue que la configuración era "tan flexible" que la configuración inicial lleva bastante tiempo. Hasta ahora, sigo creyendo que es la mejor opción para proyectos más grandes. – rasjani

+0

Rasjani, sería bastante fácil transferir la mayoría de esas características CC más sofisticadas a los otros constructores. Publique sobre eso en la lista de correo de cruisecontrol-user y tal vez podamos obtener esos agregados para usted. –

+0

Jeffrey: estoy activo en la lista de correo y he enviado mi cuota de sugerencias. Pero la sensación general es que, dado que estoy usando una configuración "poco ortodoxa", por ejemplo, no estoy usando una hormiga, la mayoría de mis cosas simplemente se han ignorado. Pero dicho esto, estoy contento con el software, puedo parchear mi configuración al grado que hace lo que necesito así que todavía soy un campista feliz =) – rasjani

1

Soy un desarrollador en CruiseControl y trabajo para Urbancode que hace AnthillPro, por lo que puedo hablar de las fortalezas de aquellos. También soy uno de los organizadores de CITCON, así que estoy bastante familiarizado con casi all the offerings in the space.

CruiseControl o Hudson son ambas herramientas de CI de código abierto bastante buenas. Encuentro que CC es realmente fácil de personalizar y extender, y hay muchos complementos que se han agregado a lo largo de sus 8 años de duración. Hudson es más nuevo y más fácil para la mayoría de las personas para comenzar; es absolutamente simple ejecutar su primer proyecto usando la configuración de la GUI mientras que CC requiere que se borre en los archivos XML.Hudson también tiene una comunidad activa de complementos y está agregando rápidamente nuevas capacidades.

Sin embargo, dependiendo de la complejidad y los requisitos de sus proyectos, es posible que encuentre una herramienta comercial como AnthillPro que se ajuste mejor. Las razones de la actualización de CC o Hudson a AHP varían de una compañía a otra, pero algunas respuestas típicas incluyen la capacidad de configurar implementaciones de autoservicio con control de acceso por entorno, el deseo de encadenar múltiples compilaciones/flujos de trabajo, la administración de dependencias integrada, repositorio de artefactos, o la capacidad de pull together data from a bunch of different tools & construcciones a lo largo del ciclo de vida.

No todo el mundo necesita esas capacidades, pero las personas que sí encuentran la actualización valen la pena.

0

Por qué no echar un vistazo también a CI Factory.

+0

eche un vistazo a ese enlace, muestra una extraña página oriental. – BlaShadow

+0

@BlaShadow Gracias, he actualizado el enlace. –

10

Eche un vistazo a TeamCity. Funciona como un encanto para nosotros.

+2

Debe pagar si tiene más de 20 trabajos y más de 20 empleados que usan la herramienta. Jenkins es gratis y no tiene límites – Gynnad

+5

Si tu tiempo tiene valor, entonces Jenkins ciertamente tiene bastantes limitaciones. – Garen

Cuestiones relacionadas