使用git、maven、puppet和jenkins时的工作流程是什么



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

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

目前我们有一个"每个功能"的分支流

我给詹金斯安排了几个工作

  • my_project-ci:轮询git服务器,并从origin/feature/*开始对所有分支进行连续集成
  • 然后我们有一个构建管道
    • my_project:启动测试,一旦某个东西被合并到master中,它就会归档工作空间并触发以下作业
    • my_project-staging:这个自动部署到声明服务器
    • my_project-production:此为手动触发

周期看起来像:

  • local:克隆->git分支-b功能/超级功能->提交->本地构建->git推送
  • jenkins:来源/特征的jenkins-cron/*
  • 本地其他开发:通过pull请求查看功能
  • local:修复->提交->本地构建->推送
  • 本地其他开发:在master中合并pullrequest
  • 詹金斯:詹金斯cron起源/大师
  • jenkins:触发my_project-stage
  • local:验证部署并手动触发my_project-production
  • jenkins:部署到生产

我不太喜欢使用puppet进行部署,它非常适合进行部署,但它处理部署的协调很糟糕(例如,在集群中运行数据库迁移,从负载平衡器中删除一个成员,部署,重新添加到平衡器)。看看像ansible,capistrano,。。。

您所描述的所有工具都是正交的。

典型的工作流程是

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

最新更新