Apache Gump es un sistema de integración continua de código abierto , que tiene como objetivo construir y probar todos los proyectos de Java de código abierto, todas las noches. Su objetivo es asegurarse de que todos los proyectos sean compatibles, tanto a nivel de API como en términos de especificaciones de coincidencia de funcionalidad. Está alojado en , y se ejecuta todas las noches en el Sol oficial JVM .gump.apache.org
Desarrollador (es) | Fundación de software Apache |
---|---|
Repositorio | |
Escrito en | Pitón |
Sistema operativo | Multiplataforma |
Tipo | Integración continua |
Licencia | Licencia Apache 2.0 |
Sitio web | gump |
Historia
Gump fue creado por Sam Ruby , basado en su experiencia en la comunidad de Perl . Originalmente fue escrito en Java.
La versión en vivo actual, Gump 3, se ha reescrito completamente en Python .
Uso
Para unirse a Gump, un proyecto debe proporcionar dos archivos XML. Uno describe cómo acceder al repositorio de CVS o Subversion en vivo ; el otro qué construir a partir del repositorio y los artefactos producidos. Cada proyecto puede depender de otros proyectos; estas dependencias se declaran para que Gump sepa el orden correcto para construir las cosas.
Gump puede construir proyectos de script de shell , Ant y Maven 1 , configurando la ruta de clases de manera apropiada. Ant y Maven 1 tienen ganchos especiales incorporados para darle a Gump un control completo de las rutas de clases utilizadas para construir y probar las aplicaciones. Esto le permite a Gump construir los proyectos contra las últimas versiones, incluso si los propios archivos de construcción del proyecto tienen dependencias codificadas contra bibliotecas estáticas en su propio repositorio de CVS o subversion.
Si una compilación en Gump tiene éxito, se coloca un informe en el sitio y todos los proyectos que se declaran dependencias son elegibles para ser compilados. Si un proyecto no se construye, se publican informes de errores, se envía un correo electrónico de error y se bloquea la construcción de todos los proyectos dependientes.
Limitaciones
- No hay forma de obligar a los desarrolladores a actuar en caso de que rompiste el correo electrónico de compilación , aparte de la presión informal de los compañeros.
- Hasta que se agregue el soporte de Maven , muchos proyectos de Java no se pueden construir. Todos los proyectos posteriores a estos solo se pueden construir en gump con versiones estáticas de las versiones anteriores, eliminando la posibilidad de compilar y probar con código nocturno, una de las características clave del proyecto.
- Puede ser difícil diagnosticar por qué algo ha fallado, ya que los desarrolladores de proyectos creados por gump no tienen acceso a la máquina, solo a los informes de estado nocturnos.
- Como es un servicio abierto para todos los proyectos de código abierto, el proyecto ha invertido menos esfuerzo en facilitar la instalación de una nueva instalación de gump, lo que dificulta el uso privado. En particular, no existe una forma automatizada de aprovisionar un servidor gump con los archivos JAR estáticos de los que dependen muchos proyectos.
- Si un proyecto fundamental como Ant , Xerces o JUnit no se puede compilar, la mayor parte de Gump se bloquea hasta que se realiza una reparación. Dependiendo de la naturaleza de la falla, este podría ser un procedimiento rápido o podría llevar más tiempo. [1]