基于Maven Mercurial的持续发布流程

时间:2013-01-17 15:22:03

标签: maven mercurial continuous-integration continuous-deployment

我想要一些“Maven with Mercurial发布”知识渊博的观点。

我已经看过this thread和其他几个。

我们希望敏捷而快速。我们想要建立一次。不是测试的构建,而是发布的构建。

我们已设置了一个持续发布流程,我们会执行以下操作:

  1. Jenkins检查“服务器”存储库上的SCM更改(每30分钟一次)。也可以手动触发
  2. Jenkins克隆“服务器”存储库
  3. Jenkins在pom中增加版本(例如:1.0.1 - > 1.0.2)。 没有快照
  4. 开始构建,打包,自动部署和测试
  5. 如果一切正常,则提交更改pom,tag并推回“server”存储库(如果需要,请合并)
  6. 将良好版本发布到“发布”系统,可供QA进行进一步测试
  7. 开发人员将从“服务器”存储库撤回更改并获取新版本的poms
  8. 如果良好发布需要热修复

    • 开发人员将从“server”存储库
    • 克隆相关标记
    • 执行修复,返回“服务器+修复”存储库
    • Jenkins将像以前一样构建
    • 如果好,修复程序也将被推送到主“服务器”存储库

    我们发现这个过程非常快速和干净。

    我希望您对流程有所了解,并希望改进。请记住 - 快速连续构建一次

    提前致谢!

1 个答案:

答案 0 :(得分:1)

+1到无快照规则。我认为一切都很好。

  

将好的版本发布到可以使用的“发布”系统   QA进一步测试

什么是“发布”系统。它是maven存储库吗?是否会自动将新构建部署到QA环境中?它是如何从存储库中提取的?你可以使用dependency:get从maven仓库中拉出一个罐子。但是如果想要为部署方面使用像Chef或Puppet这样的基础结构自动化工具,那么最好将rpms发布到maven存储库(使用maven-rpm-plugin发布并使用nexus-yum-plugin启用提取例如)或只是设置自己的yum repository