zoukankan      html  css  js  c++  java
  • CI(Continuous Integration)持续集成 紫翼龙王

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

    为什么做CI

    1、分支偏离主干

    2、未知项目进度

    3、发现bug较晚

    4、定位问题复杂

    CI价值

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

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

    3.随时发布

    重点

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

    CI系统流程

    流程图如下:

    CI详细流程图如下

    代码提交流程

    自测环境发布流程

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

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

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

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

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

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

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

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

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

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

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

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

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

    流程触发机制

    1、使用gitlab webhooks

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

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

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

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

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

    操作说明

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

    2、配置meta data

    3、新建pipeline视图

    4、设置CI初始项目名称

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

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

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

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

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

    10、发送测试报告

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

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

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

    4)、Default Subject:邮件主题

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

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

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

    2、配置groovy脚本

    3、pipeline 模板脚本生成

    4、pipeline进程查看

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

  • 相关阅读:
    python 通过*.cer *..pfx 获取公钥私钥
    python 交集 并集 差集
    python3 RSA加密、解密、签名
    Go 入门
    ansible入门篇一
    ACM/ICPC 之 两道dijkstra练习题(ZOJ1053(POJ1122)-ZOJ1053)
    数学软件 之 基于MATLAB的DFP算法
    ACM/ICPC 之 最短路径-dijkstra范例(ZOJ2750-POJ1135(ZOJ1298))
    ACM/ICPC 之 判别MST唯一性-Kruskal解法(POJ1679)
    ACM/ICPC 之 四道MST-Prim解法(POJ1258-POJ1751-POJ2349-POJ3026)
  • 原文地址:https://www.cnblogs.com/chenxiba/p/11306707.html
Copyright © 2011-2022 走看看