To jest projekt internetowy napisany w Javie.
Piszę więc skrypty kompilacji i wdrażania. Do stworzenia kompilacji użyłem mrówki. Ciągłe budowanie odbywa się za pomocą Jenkinsa.
Kompilacja generuje 3 różne artefakty:
- Plik wojenny
- Zamek błyskawiczny z układami
- Zamek z obrazami
Jak dotąd tak dobrze, ale teraz muszę napisać skrypt wdrażania, który powinien:
- Przeprowadź wojnę (artefakt 1) do kocura działającego na serwerze 1
- Umieść artefakt 2 na serwerze 1 w określonym katalogu
- Umieść artefakt 3 na serwerze 2 w określonym katalogu
Rozmawiałem więc z moim kolegą i powiedział, że powinniśmy również wygenerować artefakt (być może deploy.xml ), który rozmieszcza te artefakty, gdy zostaną umieszczone na właściwym serwerze.
Byłby więc inny skrypt, który:
- Pobierz artefakty Jenkins
- scp na każdy serwer i umieść tam plik deploy.xml
- zdalnie wywołać plik deploy.xml
To, co sprawia, że czuję się trochę nieswojo, to fakt posiadania pliku deploy.xml jako artefaktu kompilacji. Motywacją do tego byłaby możliwość wdrożenia bez konieczności posiadania dostępu do repozytoriów VCS, więc kompilacja byłaby samodzielna, tj. Każda kompilacja mogłaby wejść do produkcji tylko z tym, co wygenerowała Jenkins.
Gdzie należy umieścić skrypty wdrażania? Czy powinni być tylko w VCS, czy też powinni też budować artefakty?