我有一个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