搭建统一配置管理平台

09年到了现在这家公司,公司在项目管理上用的工具很多包括jira , TD ,SVN, twiki 等等, 但各自都很独立,例如需求在Jira里管理,测试用例在TD里管理,代码在SVN中管理,那么就面临一个问题如何把一个需求跟踪做到,需求录入开始,设计,开发,代码提交,测试分析,测试执行通过全流程的跟踪。 要解决这个问题就需要有一个平台能够把这些信息整合,统一跟踪管理。 带着这个思路我们在测试部门提供了建立UCM平台这个项目。

    UCM 平台是通过数据库和SVN变更信息提取的方式抽取数据,在UCM平台中建立关系并进行信息整合。跟据测试部门中的资源情况,先进行了一个总体的预期规划,在进行分阶段执行。下面介绍一下总体规划。

 

    先说一下数据准备要有哪些:

          首先需求数据要获得需求编号,版本号,作者,日期,等信息,这些数据可以在jira数据库中直接读取。

          其次是代码并更数据,这部些数据可以直接从SVN中抓取,需要进行SVNkit的二次开发。 (其实SVN有Jira插件的,可以继承到Jira界面,但是因为公司环境部署原因jira服务器无法访问内网中的SVN服务器,所以无法使用,我们做两者关联的原理是一样的——都是冲过CI事件的Comment信息中找issue ID 信息)

          其次是测试用例数据的提取,这个数据可以重TD后台数据库中提取出来。如果用TestLink 也是可以提取的。

   

    我们首先抓住了中间这部分数据处理,因为这部分不单单是业务需求跟踪要用,这部分我们进行了功能扩展,支持了基于SVN代码变更的自动开发发布包管理,自动后台编译,自动后台部署等功能。

   

 

  这部分功能如下:

  1. . 实现构造开发发布程序包,包内容包括需要提交的代码列表,sql脚本,发布说明,已经相关附件等;在包说明中能够根据选择SVN中的Commit事件提取事件中comment部分,格式化后追加到发布程序包的说明中(如在某一个版本提交实践中注明本次修改是Fix bug001,bug002,在选择提交事件后把该comment 信息格式化为 version-2255 : fix bug001 ,bug002 )
  2. 实现发布包的流程管理,基本流程例如: 开发人员->构造开发发布包(包为new状态),配置管理员->发布开发提交发布包(包状态new->open 状态),builder master->编译发布包(包状态open状态->make pass or make fail) , builder master ->部署发布包到测试环境(包状态(making pass ->deploy ok or deploy fail ) , 测试人员->测试发布包(deploy ok -> test pass or test fail ) , 配置管理员->关闭发布包(test ok ->close) 异常流程失败状态传递给包给开发人员修改发布包(设置make fail , deploy fail , test fail ->new )
  3. 发布开发提交发布包,配置管理员通过执行发布按钮,系统能够同步所有代码列表中所有代码操作行为到测试分钟中,并生成两个编译工单和部署工单,并邮件通知builder master执行编译)
  4. build master 收到邮件后,在build服务器直接svn up 同步编译环境代码(同步测试分支代码),执行编译。执行通过后返回状态给统一配置平台,更新编译工单状态pass, 并发送邮件给部署人员执行部署,如果失败更新编译工单为fail 状态,触发更新包状态为make fail ,并发送邮件给开发人员
  5. 部署人员(or部署子系统)收到邮件或消息后,执行部署(部署分为两部分,sql部署,程序部署),部署成功后更新部署工单状态为pass, 触发邮件给测试人员执行测试。 如果失败修改部署工单为fail状态,触发更新包状态为deploy fail ,并发送邮件给开发人员
  6. 测试人员测试通过后,更新包状态pass , 否设置包fail .
  7. 为实现平台支持多项目,在系统管理模块中所有参数和用户维护,按照项目进行独立配置。

你可能感兴趣的:(持续集成)