2011-06-06 27 views
5

Me gustaría configurar un entorno de integración continuo mediante el cual, después de confirmar el código fuente, desencadena un proceso de compilación que verifica el código, ejecuta pruebas, construye un archivo war y lo implementa en el servidor embarcadero de modo que los usuarios/probadores puedan acceder a la aplicación en el navegador.Despliegue automático con Jenkins/embarcadero

¿Esto es posible?

Estoy usando maven y jetty (no estoy dispuesto a cambiar esto. Uso embarcadero tanto para desarrollo como para producción). Para CI, estoy explorando Jenkins, pero estoy abierto a otras soluciones de código abierto.

Si es posible, cómo configuro el entorno.

Respuesta

6

Encontré un complemento de maven llamado cargo. Tiene todo lo que necesitaba. Lo agregué a mi pom para poder desplegar y anular mi despliegue usando mvn cargo: deploy/mvn cargo: undeploy. Creé un nuevo trabajo de jenkins y agregué los objetivos de deshacer implementación y despliegue del paquete como pasos de construcción. Todo funciona a la perfección.

+2

¿Puedes publicar tu ejemplo? ¿Creó un módulo separado para la implementación? ¿ejecutas "mcn cargo: deploy" en ese nivel de módulo o en el nivel raíz? etc. – Alex

+0

El proyecto tenía un único módulo web. Incluso con múltiples módulos ... solo necesito asegurarme de que el módulo web pueda compilarse por sí solo y luego usar la carga solo en el módulo web. – joshua

3

es definitivamente posible. En un proyecto anterior, el servidor de compilación (teamcity) copió la guerra en una ubicación nfs compartida entre el servidor de compilación y el servidor de aplicaciones y ejecutó un pequeño script de shell que se conectó al servidor de aplicaciones y se reinició el embarcadero.

Utilizamos hormiga dentro de maven para gestionar la implementación, recuerdo que utilizamos las tareas de copia y sshexec.

Estoy seguro de que hay muchas otras soluciones, pero esa funcionó para nosotros.

+0

Gracias por su intento de ayudar. Josh. – joshua

+0

Decidí usar el comando "scp" simple para copiar WAR en el servidor. el complemento de carga no funcionaba, era demasiado complicado y no daba ningún valor. – Alex

1

He revisado muchas publicaciones como esta, pero quiero algo que sea independiente. Mira, este es un corredor independiente en Hudson/Jenkins. Solo necesita 'guerra', incluso la instalación manual del muelle no es necesaria. Deploy war on jetty in Jenkins or Hudson job