My team uses Jenkins, in future we might adopt CodeStar from AWS. Unfortunately, using 3rd party tools like GitLab in the cloud is not an option for security reasons. Perhaps it's possible, but getting this is way above my pay grade. On the other hand Jenkins gives you most control you can have. All jobs are pipelines in the code, stored in git.
Let me add one more question: you use Jenkins as a deployment tool, but how do you actually deploy your code? How do the scripts look like? Do you just copy your code to the remote server, or git pull on the target server and restart the app? How does it look like?
With Java - the deployment flow is two-part - one is to build the app and it's assets, and execute unit and integration tests, and put artifact into artifactory. Second part is about pushing stuff to one or multiple tomcats. Each time there is a loadbalancer that has to be disconnected, artifact to be deployed, sanity checks (both automated and manual), then loadbalancer reconnects, then we proceed to next server.
For some - flow is ansible based - put service down with systemd, upload new artifact, then bring it up
We work on having aws lambda, im currently finding the best approach, there is a package to be built, deploy as staging, run checks, promote to production build, and discard older versions.
There is also a package of static files that is deployed by just "git checkout".
My team uses Jenkins, in future we might adopt CodeStar from AWS. Unfortunately, using 3rd party tools like GitLab in the cloud is not an option for security reasons. Perhaps it's possible, but getting this is way above my pay grade. On the other hand Jenkins gives you most control you can have. All jobs are pipelines in the code, stored in git.
Thanks for your reply!
Let me add one more question: you use Jenkins as a deployment tool, but how do you actually deploy your code? How do the scripts look like? Do you just copy your code to the remote server, or git pull on the target server and restart the app? How does it look like?
With Java - the deployment flow is two-part - one is to build the app and it's assets, and execute unit and integration tests, and put artifact into artifactory. Second part is about pushing stuff to one or multiple tomcats. Each time there is a loadbalancer that has to be disconnected, artifact to be deployed, sanity checks (both automated and manual), then loadbalancer reconnects, then we proceed to next server.
For some - flow is ansible based - put service down with systemd, upload new artifact, then bring it up
We work on having aws lambda, im currently finding the best approach, there is a package to be built, deploy as staging, run checks, promote to production build, and discard older versions.
There is also a package of static files that is deployed by just "git checkout".
Thank you! :)