What is the workflow when using git,maven,puppet and jenkins?
I have a maven project which uses git for version control. I have setup jenkins to perform maven builds for specific revisions of my repo. What i have thought is, I can use puppet to deploy specific builds done by jenkins.
Is there any other workflow which i can try, when using git,maven,puppet and jenkins?
2 Solutions collect form web for “What is the workflow when using git,maven,puppet and jenkins?”
Currently we a have a “per feature” branch flow
I’ve setup jenkins with several jobs
my_project-ci: one that poll the git server and do continuous integrations on all branch starting with
- then we a have a build pipeline
my_project: launch test, once the something is merged in master, it then archive the workspace and trigger the following job
my_project-staging: this one deploy automatically to the stating servers
my_project-production: this one is triggered manual
the cycle looks like :
- local : Clone -> git branch -b feature/super-feature -> commit -> local build -> git push
- jenkins : Jenkins cron for origin/feature/*
- local other dev : review the feature via pull request
- local : fix -> commit -> local build -> push
- local other dev : merge the pullrequest in master
- jenkins : Jenkins cron origin/master
- jenkins : trigger my_project-staging
- local : validate deployment and trigger manually the my_project-production
- jenkins : deploy to production
I’m not a big fan of using puppet for deployment, it works great for provisionning but it handles badly orchestration of deployments (eg run db migration, in a cluster, remove one member from load balancer, deploy, re-add to balancer). Take a look a tools like ansible, capistrano,…
Well all tools you have described are orthogonal to each other.
typical workflow is
Clone -> commit -> local build -> push -> Jenkins cron -> deply