说到CI/CD(持续集成/持续交付),很多人都会联想到到Jenkins。本篇文章主要针对“持续集成”进行简单讲解,包括“jenkins是什么、jenkins的特点、jenkins应用场景以及持续集成必备条件、流程等”。希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!
01:为什么要用持续集成
(1)对重复的编译发布等操作进行抽象,减少重复过程
(2)及时发现各种冲突和错误,减少风险
(3)任何时间,任何地点生成可部署的软件
(4)开发人员和运维人员都减轻了工作负担
02:持续集成的必备条件
(1)一个自动构建过程,包括自动编译、分发、部署和测试等。
(2)一个代码仓库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程中的其中一个素材。
(3)一个持续集成服务器
03:持续集成的流程
(1)测试环境:
- 开发人员将代码上传至Git服务器
- Jenkins持续集成服务器拉取Git上的代码并配合maven将项目自动构建成war包或jar包
- 通过shell脚本自动发布项目到测试服务器
(2)生产环境:测试环境将项目测试没问题后,将项目推送到线上正式环境。
04:持续集成(Continuous Integration)
(1)在传统的软件开发中,项目的整合是在项目开发结束所有人提交了代码之后;而持续集成是在项目的开发过程中不断地进行环境构建、功能的测试与集成
(2)CI是一种软件开发实践,持续集成强调开发人员提交了新代码之后,立刻进行构建、单元测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起
05:持续交付(Continuous Delivery)
CD在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的(类生产环境)中
06:持续部署(continuous deployment)
(1)CD是持续交付的下一步,指的是代码通过评审以后自动部署到生产环境
(2)一个多人开发的项目中,在代码提交(CHECK-IN)
到版本库(SOURCE REPOSITORY)
后,集成工具Jenkins能够进行:环境的构建(BUILD)
|测试环境(TEST)
的功能测试|过渡环境(STAGING)
的功能测试|正式环境(PRODUCTION)
的功能测试。
07:持续集成的项目开发周期
08:jenkins是什么
(1)Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。
(2)Jenkins通常与版本管理工具(SCM)、构建工具结合使用
(3)常用版本控制工具有SVN、GIT
(4)常用构建工具有Maven、Ant、Gradle
09:jenkins的特点
(1)易于安装:只需通过java -jar jenkins.war即可
(2)易于配置:所有的配置都可能通过jenkins提供的web界面完成
(3)生成JUnit或TestNG的测试报告
(4)文件识别:jenkins能跟踪每次构建生成哪些jar包以及使用哪个版本的jar包
(5)分布式构建
(6)插件支持:jenkins可以通过第三方插件扩展,也可以根据团队需要开发插件
10:jenkins的应用场景
(1)Jenkins集成邮件通知模板
(2)Jenkins+Ant+Robotium构建自动化测试持续集成
(3)Jenkins+ant+jmeter搭建持续集成的接口测试平台
(4)jenkins + Git + Maven配置
(5)使用jenkins + python + selenium一步步搭建web自动化测试“框架”
(6)......