Este es un proyecto web escrito en Java.
Por lo tanto, estoy escribiendo la compilación y los scripts de implementación. Para crear el build, utilicé ant. La compilación continua se realiza con Jenkins.
La construcción genera 3 artefactos diferentes:
- El archivo de guerra
- Un zip con diseños
- Un zip con imágenes
Hasta ahora, todo bien, pero ahora necesito escribir el script de implementación, que debería:
- Despliega la guerra (artefacto 1) en el tomcat que se ejecuta en servidor 1
- Coloque el artefacto 2 en servidor 1 en un directorio específico
- Coloque el artefacto 3 en servidor 2 en un directorio específico
Estaba hablando con mi colega y él dijo que también deberíamos generar un artefacto (tal vez deploy.xml ) que implemente estos artefactos cuando se coloquen en el servidor correcto.
Así que habría otro script, que sería:
- Descargue los artefactos de Jenkins
- scp a cada servidor y coloca el deploy.xml allí
- invocar de forma remota el archivo deploy.xml
Lo que me hace sentir un poco incómodo es el hecho de tener deploy.xml como artefacto de construcción. La motivación detrás de esto sería poder realizar una implementación sin necesidad de tener acceso a los repositorios 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 generado por Jenkins. p>
¿Dónde se deben colocar los scripts de implementación? ¿Deben ser solo en el VCS o también deben ser artefactos de compilación?