Il s'agit d'un projet Web écrit en Java.
J'écris donc la construction et les scripts de déploiement. Pour créer le build, j'ai utilisé ant. La construction continue se fait avec Jenkins.
La construction génère 3 artefacts différents:
- Le dossier de guerre
- Un zip avec des dispositions
- Un zip avec des images
Jusqu'à présent, tout va bien, mais maintenant je dois écrire le script de déploiement, qui devrait:
- Déployer la guerre (artefact 1) sur le tomcat exécuté sur le serveur 1
- Placer l'artefact 2 sur le serveur 1 dans un répertoire spécifique
- Placer l'artefact 3 sur le serveur 2 dans un répertoire spécifique
Je parlais donc avec mon collègue et il a dit que nous devrions également générer un artefact (peut-être deploy.xml ) qui déploie ces artefacts lorsqu'ils sont placés sur le bon serveur.
Il y aurait donc un autre script, qui:
- Téléchargez les artefacts Jenkins
- scp sur chaque serveur et placez-y le deploy.xml
- appeler à distance le deploy.xml
Ce qui me met un peu mal à l'aise, c'est le fait d'avoir le deploy.xml comme un artefact de build. La motivation derrière cela serait de pouvoir effectuer un déploiement sans avoir besoin d'avoir accès aux référentiels VCS, donc une build serait autonome, c'est-à-dire que n'importe quelle build ne pourrait entrer en production qu'avec ce qui a été généré par Jenkins.
Où placer les scripts de déploiement? Doivent-ils être uniquement sur le VCS ou doivent-ils également être des artefacts de construction?