CI(Continuous Integration)持续集成

CI(Continuous Integration)持续集成,CD(Continuous Delivery) 持续交付web

为何作CI

一、分支偏离主干服务器

二、未知项目进度maven

三、发现bug较晚gitlab

四、定位问题复杂单元测试

CI价值

1.二进制包准备下降风险:静态代码分析,尽早发现bug测试

2.自动化:自动化编译、自动化测试、自动部署、自动审查、自动反馈ui

3.随时发布url

重点

为了提升代码质量已经每次发布到beta环境服务的稳定性,要提升自动化测试覆盖率(不只限于接口自动化测试)插件

CI系统流程

流程图以下:

CI详细流程图以下

代码提交流程

自测环境发布流程

一、当git lab上有代码向dev_test分支发起merge请求,触发自测环境的jenkins sonar扫描;

二、sonar扫描--针对dev_test分支;

三、单元测试--针对dev_test分支;

四、构建自测环境,并运行自测环境--针对dev_test分支;

五、执行接口自动化测试;

六、接口自动化测试经过后,在自测环境中进行功能测试、新增接口测试,并将新增测试点新增到自动化测试案例库中。

Beta环境发布流程(分支:dev)

一、当git lab上有代码向dev分支发起merge请求,触发jenkins sonar扫描;

二、sonar扫描--针对dev分支

三、单元测试--针对dev分支

四、构建自测环境,并运行自测环境--针对dev分支

五、执行接口自动化测试;

六、接口自动化测试经过后,将测试经过的dev分支发布并部署到beta环境。

流程触发机制

一、使用gitlab webhooks

二、URL处输入构建的url地址,需增长token信息;

http://jenkins.cn/view/decision/job/decision-sonar/build

三、Secret Token 输入jenkins中需由gitlab merge请求触发的工程中配置身份令牌

触发机制配置merge请求时触发

四、提交merge请求,触发流程

操做说明

一、新建jenkins项目
新建sonar扫描、单元测试、构建、自动化测试、beta环境构建五个项目。

二、配置meta data

三、新建pipeline视图

四、设置CI初始项目名称

五、CI初始项目设置依赖关系.注意:依赖关系必定要顺序执行,避免造成环形依赖

六、设置预警声音(可自定义声音,音频格式的文件为wav格式,而且将音频文件打包好给叶柄添加到jenkins服务器上便可)

七、Sonar扫描项目配置
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent
mvn sonar:sonar

八、单元测试项目配置
-Dmaven.test.skip=false

九、自动化项目配置
http://jenkins.puhuitech.cn/view/decision/job/puhui-decision-autotest/

十、发送测试报告

1)、安装jenkins插件,Editable Email Notification

2)、选择构建后操做,Editable Email Notification;

3)、Project Recipient List:输入收件人的邮箱地址,收件人之间使用逗号隔开;

4)、Default Subject:邮件主题

5)、Default Content:邮件内容自定义

预热内容--使用Groovy脚本新建pipeline流程

一、新建一个项目类型为Pipeline的jenkins工程

二、配置groovy脚本

三、pipeline 模板脚本生成

四、pipeline进程查看

五、jenkins 2.0建自动化构建之pipeline语法: