Skip to content

Latest commit

 

History

History
53 lines (40 loc) · 2.25 KB

File metadata and controls

53 lines (40 loc) · 2.25 KB

项目持续集成(CI)系统

设计目的

本次设计以满足现阶段开发环境使用,保证开发环境的后台服务及前端项目快速持续的交付。减轻开发人员的发版负担,杜绝频繁发版导致代码被互相覆盖的情况。 系统要保证使用方便,具备集成过程可监控。

设计思路

系统的核心思路是基于git仓库的WEBHOOK实现,当开发人员提交代码时,会自动调用CI系统中项目的webhook 地址,系统先 判断当前项目的工作目录是否存在源码, 如果不存在则拉取项目相应分支的最新代码(分支和git地址都是配置实现)。

拉取代码后每个项目都要配置一个脚本钩子,可以设置拉代码前或拉代码后执行。脚本内可以定义项目的编译拷贝等过程。

每个项目的每次编译任务可以支持过程监控,可以推送编译结果 (基于钉钉群机器人实现)。

1.项目管理(project)

1.1 功能介绍

项目为CI系统中的最小任务单元,项目代表一个需要持续集成的任务,可以是一个后台或者前端工程。

1.2 数据模型

字段 类型 说明
name string 项目名称
code string 项目编码
branch string 代码分支
repo string 仓库地址
pre_hook string 拉代码前执行脚本路径, 相对于工作目录
next_hook string 拉代码后执行的脚本路径,相对于工作目录
notify int 是否开启钉钉通知(1:是2:否)
web_hook string 钉钉群机器人的web hook地址

2.发版历史(history)

2.1 功能介绍

项目的集成历史记录,方便对项目进行统计,记录时间、结果、成功或失败,提交人等。

2.2 数据模型

字段 类型 说明
project_id string 项目id
result int 1:成功2:失败
echo string 编译输出日志
pusher string 提交人
created_time datetime 创建时间

3.实时监控

3.1 功能介绍

支持web端实时监听项目的集成过程,向客户端输出项目脚本执行日志。支持单个项目多客户端订阅监听。

4.钉钉机器人通知

4.1 功能介绍

目前设计上支持单个项目配置钉钉群机器人消息通知,通知支持开、关。