这系列主要目标面向的是小公司, 没有专业运维, 但是需要搭建一套能用的CI的同学。安装搭建都是使用docker,快速的使用,所以并不会介绍某个应用怎么源码搭建怎么配置参数 …如果需要源码搭建的同学,建议自行百度
不可免俗,网上说持续集成(Continuous Integration),持续交付(Continuous Delivery),持续部署(Continuous Deployment)的文章也很多,我就说一下我的理解
- 持续集成 正常开发,一般都会有主分支和开发分支。在经过一系列测试,保证代码质量的前提下,把开发分支合并到主分支这个操作叫做持续集成。
- 持续交付 主分支以版本的形式,不断交付给其他团队,叫做持续交付
- 持续部署 实现自动化(重复)部署应用到对应环境(单机或者集群或者分布式)
以下是快速搭建需要掌握的一些基础知识
- docker基础知识(https://www.runoob.com/docker/docker-command-manual.html)
- docker compose基础知识
搭建思路
- 全部采用docker镜像安装, 避免环境因素造成安装问题
- 使用gitlab做代码仓库
- 使用jenkins做构建测试
- sonarQube静态代码扫描
- phpunit 单元测试(可换其他测试框架)
具体流程如下:
commit: 客户端提及代码-》gitlab触发push事件-》jenkins执行构建,测试,并把结果通知给客户端
merge:开发发起合并请求-》gitlab触发merge事件-》jenkins执行构建测试-》失败:直接拒绝合并,成功:主管操作合并
环境说明
- 虚拟机(测试用)2台, 1台部署CI(暂名 ci_server ip:192.168.133.129) 内存至少6g,硬盘空间至少30g, 另一台测试(暂名 test_server_01 ip:192.168.133.248),内存1g
- 系统版本: centos7以上
- docker版本
Docker version 19.03.5, build 633a0ea
- docker-cpmpose版本
docker-compose version 1.24.1, build 4667896b
- gitlab版本
GitLab Community Edition 12.5.3
- jenkins版本
Jenkins2.190.3
- sonarQube版本
7.9.1.27448
CI服务器 准备工作
- 关闭防火墙, 修改yum 源
[root@localhost ~]