Flujo de trabajo de lanzamiento de software soportado por herramientas

Actualmente estamos en process de configurar un flujo de trabajo de lanzamiento de software soportado por herramientas.

Nuestro entorno actual consiste en lo siguiente:

  • Servidor de compilation Jenkins
  • Repositorio Subversion
  • Repositorio de Nexus Maven

El server de compilation produce todo tipo de artefactos diferentes, algunos de los cuales son artefactos de Java creados por Maven y almacenados en el repository de Nexus, pero también artefactos que no son de Java, que actualmente tenemos que almacenar y administrar manualmente.

Nuestro objective es crear una versión de software que consta de varios componentes heterogéneos. La configuration de lanzamiento debe definir:

  • los componentes que pertenecen a ella
  • la versión exacta de estos componentes
  • el código fuente que se usó para crear estos componentes

La configuration de lanzamiento debe contener toda la información relevante para comprender y posiblemente reproducir el lanzamiento en un momento posterior.

Una herramienta que implemente este flujo de trabajo también debe respaldar la garantía de calidad al permitir labelr la versión como inestable, de testing o estable.

Entonces la pregunta es: ¿hay alguna herramienta que soporte el flujo de trabajo descrito?

Debería considerar usar JIRA , que es una herramienta de Atlassian. Con JIRA es fácil rastrear problemas, lanzamientos, etc. Demasiadas características para mencionar aquí, pero le sugiero que revise el enlace.

Opte por un repository genérico de packages (rpm, deb) en lugar de un repository de artefactos Java. La configuration de lanzamiento ahora se convierte en un package de primera class que establece dependencies (componentes que le pertenecen) y sus versiones. En cuanto a la fuente, puede elegir también crear packages fuente . Si solo está interesado en la trazabilidad de la fuente, puede agregar metadatos personalizados a la especificación del package, por ejemplo, agregar algo analizable a la descripción. fpm es una herramienta popular para crear estos packages.

Enlaces relacionados:

http://www.techrepublic.com/blog/opensource/create-your-own-yum-repository/609

https://github.com/sonatype/nexus-yum-plugin