1

我有一个使用 git 进行版本控制的 Maven 项目。我已经设置 jenkins 来为我的 repo 的特定修订执行 maven 构建。我的想法是,我可以使用 puppet 来部署由 jenkins 完成的特定构建。

在使用 git、maven、puppet 和 jenkins 时,我可以尝试其他工作流程吗?

4

2 回答 2

1

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 origin/feature/*
  • 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,...

于 2013-12-17T11:11:44.287 回答
0

好吧,您描述的所有工具都是相互正交的。

典型的工作流程是

克隆 -> 提交 -> 本地构建 -> 推送 -> Jenkins cron -> 部署

于 2013-07-04T21:37:07.417 回答