lain ci系统架构解析 - lichao-mobanche/lain GitHub Wiki
整体架构图:

- 将jenkins直接部署在物理机上,同时使用virtual box启动三个虚拟机模拟lain集群的三个节点。
- 提供了jenkins最新的UI BlueOcean。
- ci测试完成之后会将测试状态返回到lain仓库的README。
- 在用户权限控制方面,管理员拥有较高权限,暂不提供用户注册功能,匿名用户只提供read权限。
- 由于现在提交量还不是很大,目前只支持线性构建
系统详解:

- 在jenkins上构建两个实例job1(lain-bootstrap)与job2(snapshot),分别负责系统测试与构建环境清理。将node1设置为jenkins的slave,并将job1绑定到node1。而job2运行在物理机上,负责清理构建环境。job1构建完成后,无论是否成功都会自动激发job2的构建,以避免对下测试造成影响。
这样实现了将环境构建代码与测试代码分离,用户提交的代码只能运行在虚拟机node1上,较为安全可靠。
- 当用户在lain仓库提交了pr以后会自动激发job1的构建,job1会自动从github拉取pr代码到node1,并运行bootstrap。
- job1构建完成会自动激发job2构建,job2会将三个虚拟机重新恢复到之前预存的sanpshot,为下次测试做准备。
版本信息如下:
- virtual box = 4.3.4
- host os = centos-6.9
- guest os = centos-7.4
- jenkins = 2.87
使用的jenkins插件:
- GitHub Pull Request Builder = 1.39.0
- Blue Ocean = 1.3.1
- Embeddable Build = 1.9