Este é um projeto da Web escrito em Java.
Então, estou escrevendo os scripts de compilação e implantação. Para criar a compilação, usei ant. A construção contínua é feita com Jenkins.
A construção gera 3 artefatos diferentes:
- O arquivo de guerra
- Um zip com layouts
- Um zip com imagens
Até agora, tudo bem, mas agora preciso escrever o script de implantação, o que deve:
- Implemente a guerra (artefato 1) no tomcat em execução no servidor 1
- Coloque o artefato 2 no servidor 1 em um diretório específico
- Coloque o artefato 3 no servidor 2 em um diretório específico
Então, eu estava conversando com meu colega e ele disse que também deveríamos gerar um artefato (talvez deploy.xml ) que implante esses artefatos quando colocados no servidor correto.
Portanto, haveria outro script que:
- Faça o download dos artefatos de jenkins
- scp para cada servidor e coloque o deploy.xml lá
- chamar remotamente o deploy.xml
O que me deixa um pouco desconfortável é o ato de ter o deploy.xml como um artefato de construção. A motivação por trás disso seria ser capaz de fazer uma implantação sem precisar ter acesso aos repositórios VCS, para que uma construção fosse independente, ou seja, qualquer construção poderia entrar em produção apenas com o que foi gerado por Jenkins.
Onde os scripts de implantação devem ser colocados? Eles devem estar apenas no VCS ou também devem criar artefatos?