Skip to content

前端持续集成之 hudson 解决方案

hui edited this page Nov 6, 2013 · 3 revisions

整体构成

Hudson + weblint + totoro + cabtus + 展现平台

hudson

负责任务的执行和调度. 并根据结果做出通知.

插件体系

hudson 本身的扩展机制非常强大, 而且有很多开源插件, 通过这些插件我们可以很好的完成相关任务, 下面就介绍一些我们用到的一些主要插件

  • Job Dsl 批量任务创建和更新.
  • Git plugin git 项目支持
  • HTML Publisher Plugin 支持报告的输出(catbus.json, totoro.json)
  • Gitlab Hook gitlab hook 的支持
  • NodeJS Plugin 支持 NodeJs 脚本的执行和 NodeJs 的升级安装
  • Email-ext plugin 邮件自定义 还有很多小的功能都是通过插件来实现的, 目前看来应该能满足我们的需求, 后续有需要我们也可以开发自己的插件.

任务分类

我们目前把任务分为两大类:

一个桥梁性质的工具, 他可以把我们日常用到的一些工具和 hudson 粘合起来.

weblint totoro
weblint catbus

后续可以很方便的进行扩展.

前端测试工具

前端代码质量检查工具

展现平台

第三方接入

服务约定

arale, alipay, 支付宝相关业务都是通过这个方式进行接入。 具体是通过提供一个 json 的文件, hudson 会定期分析这个文件,如果发现有新的模块加入,就会自动的创建相应的项目。具体的 json 数据可以可以参看 http://spmjs.org/repository/arale/

web 界面

通过提供一个表单,和 hudson 平台打通,从而规避 hudson 过于复杂的操作。 后续也可以重新定制相关的展现页面。 目前 hudson 提供了很好的数据访问服务,我们可以很容易的拿到相关数据。