对jenkins的理解

持续集成是什么?简称 CI
概念: Continuous integration
持续集成指的是,频繁地(一天多次将代码集成到主干)
持续集成的目的:让产品可以快速迭代,同时保持高质量,在代码集成到主干会自动化检测,有一个测试用例失败,就不能集成。
它的好处有两个:
快速发现错误,每完成一点更新,就集成到主干,快速发现错误,定位错误容易。
防止分支大幅偏离主干,如果不是经常集成,主干又不断更新,会导致以后集成难度大,甚至难以集成。
相关概念:持续交付、持续部署。
持续交付:Continuous delivery
频繁将软件新版本,交给质量团队测试,测试部门测试,测试部门通过后,代码进入生产阶段。
持续交付是持续集成的下一步,不管代码怎么更新,软件时随时随地交付的。
持续部署:continuous deployment
是持续交付的下一步,指的是代码通过测试部门评审后,自动部署到生产环境。
持续部署的前提是能自动化完成测试、构建、部署等步骤。
流程; 持续集成CI-----> 持续交付CD------->持续部署CD
提交: 流程的第一步,开发者向仓库提交代码,所有步骤始于本地代码的提交commit。
测试(第一轮): 流程第二步,代码仓库对commit操作配置了钩子book,只要提交代码或者合并到主干,就跑自动化测试。
测试分为好几种:
单元测试:针对单个模块来测试。
功能测试:针对产品的某个功能来测试。也叫集成测试。
端对段测试:从用户界面直达数据库的全链路测试。
构建: 第一轮测试后,代码合并到主干。就可以交付了。交付后先进行build。
构建是将源代码转换为可以运行的实际代码,比如安装依赖,配置各种资源(js脚本图片)
测试(第二轮): 构建完成,就可以第二轮测试,第二轮是全面测试,单元测试和集成测试都会跑,有条件的话,也要做端对段测试,测试用例。
注释; 如果第一轮测试已经涵盖了所有的测试内容,第二轮可以省略,不过构建步骤也要移到第一轮测试前面。
部署: 第二轮测试通过后,代码就可以直接部署,将这个版本存档,部署到生产服务器。部署工具有ansible salstack puppet。
回滚: 一旦当前版本有问题,就要回滚到上一个版本的构建结果。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章