Este es un proyecto web escrito en Java.
Entonces, estoy escribiendo los scripts de compilación y despliegue. Para crear la compilación, usé hormiga. La construcción continua se realiza con Jenkins.
La construcción genera 3 artefactos diferentes:
- El archivo de guerra
- Una cremallera con diseños
- Un zip con imágenes
Hasta ahora, todo bien, pero ahora necesito escribir el script de implementación, que debería:
- Implemente la guerra (artefacto 1) en el tomcat que se ejecuta en el servidor 1
- Coloque el artefacto 2 en el servidor 1 en un directorio específico
- Coloque el artefacto 3 en el servidor 2 en un directorio específico
Estaba hablando con mi colega y me dijo que también deberíamos generar un artefacto (quizás deploy.xml ) que despliegue estos artefactos cuando se coloque en el servidor correcto.
Entonces habría otro script, que sería:
- Descargar los artefactos jenkins
- scp a cada servidor y coloque el deploy.xml allí
- invocar remotamente el deploy.xml
Lo que me incomoda un poco es el acto de tener el deploy.xml como un artefacto de compilación. La motivación detrás de esto sería poder realizar una implementación sin necesidad de tener acceso a los repositorios de VCS, por lo que una compilación sería autónoma, es decir, cualquier compilación podría entrar en producción solo con lo que generó Jenkins.
¿Dónde se deben colocar los scripts de implementación? ¿Deberían estar solo en el VCS o también deberían ser artefactos de construcción?