目录
一、CI/CD
1、为什么要 用CI / CD
2、理解持续集成、持续交付、持续部署
1、持续集成
2、持续集成目的在产生以下效益
3、持续交付
4 、持续部署
二、Jenkins CI/CD
1、 Jenkins CI/CD 流程图/p>
2、Jenkins 介绍
1、Jenkins 功能
2、Jenkins 概念
3、Jenkins 目的
4、Jenkins 特性
5、产品发布流程
3、jenkins安装与使用
1、安装java和maven
2、安装jenkins
4、登录jenkins web管理界面
5、Jenkins用户权限管理
1、用户管理背景
2、安装用户管理插件
3、开启插件功能
4、验证用户管理
5、用户权限划分
6、Jenkins 参数化构建
1、参数化构建背景
2、安装插件并使用
三、部署应用Jenkins+Github+Tomcat实战
1、jenkins部署
1、安装插件
2、插件安装过程
3、配置邮箱(可选)
4、配置Jenkins私钥
5、添加后端服务器
6、配置jdk,maven命令,全局配置
7、构建发布任务
2、部署java服务器,做jenkins打包上线
3、回到jenkins页面开始构建任务
四、部署jenkins+gitlab+tomcat实战
1、gitlab本地仓库与远程仓库的配置
2、jenkins服务器的配置
3、web服务器(tomcat)环境清理
4、jenkins项目的创建与配置
5、项目构建
6、排错
五、 Gitlab+jenkins+tomcat+webhook 自动发布
1、jenkins安装插件
2、gitlab配置项目的webhook
3、测试自动发布
4、排错
1、gitlab出现500错误的解决方法
2、在gitlab测试webhook功能的时候出现403
一、CI/CD
1、为什么要 用CI / CD
软件开发的连续方法基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性。从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预。它涉及在每次小迭代中不断构建,测试和部署代码更改,从而减少基于有缺陷或失败的先前版本开发新代码的机会。这种方法有三种主要方法,每种方法都根据最适合您的策略进行应用。
持续集成(Continuous Integration, CI): 代码合并,构建,部署,测试都在一起,不断地执行这个过程,并对结果反馈。
持续交付(Continuous Deployment, CD): 部署到测试环境、预生产环境。
持续部署(Continuous Delivery, CD): 将最终产品发布到生成环境、给用户使用。
2、理解持续集成、持续交付、持续部署
1、持续集成
持续集成(英语:Continuous integration,缩写为 CI),一种软件工程流程,将所有工程师对于软件的工作复本,每天集成数次到共用主线(mainline)上。
这个名称最早由葛来迪·布区(Grady Booch)在他的布区方法中提出,但是他并没有提到要每天集成数次。之后成为极限编程(extreme programming,缩写为XP)的一部分。在测试驱动开发(TDD)的作法中,通常还会搭配自动单元测试。
持续集成的提出,主要是为了解决软件进行系统集成时面临的各项问题,极限编程称这些问题为集成地狱(integration hell)。
持续集成主要是强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。简单来讲就是:频繁地(一天多次)将代码集成到主干。
2、持续集成目的在产生以下效益
及早发现集成错误且由于修订的内容较小所以易于追踪,这可以节省项目的时间与成本。
避免发布日期的前一分钟发生混乱,当每个人都会尝试为他们所造成的那一点点不兼容的版本做检查。
当单元测试失或发生错误,若开发人员需要在不除错的情况下还原代码库到一个没有问题的状态,只需要放弃一小部分的更改 (因为集成的次数频繁)。
让 “最新” 的程序可保持可用的状态供测试、展示或发布用。
频繁的提交代码会促使开发人员创建模块化,低复杂性的代码。
防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
3、持续交付
持续交付(英语:Continuous delivery,缩写为 CD),是一种软件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况。
它的目标在于让软件的建置、测试与释出变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。
4 、持续部署
持续部署(英语:Continuous Deployment,缩写为 CD),是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
有时候,持续部署也与持续交付混淆。持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。
持续部署即在持续交付的基础上,把部署到生产环境的过程自动化。
二、Jenkins CI/CD
说明:上线之前先把代码git到版本仓库,然后通过Jenkins 如Java项目通过maven去构建,这是在非容器之前,典型的自动化的一个版本上线流程.(存在环境依赖问题)
如:它的测试环境,预生产环境,测试环境。会存在一定的兼容性问题 (环境之间会有一定的差异)
说明:这里有一个docker harbor 的镜像仓库,通常会把你的环境打包为一个镜像,通过镜像的方式来部署(解决环境依赖问题)。
2、Jenkins 介绍
Jenkins 是一个用Java编写的开源的持续集成工具。在与Oracle发生争执后,项目从Hudson项目独立。
Jenkins 提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。Jenkins是在MIT许可证下发布的自由软件。
1、Jenkins 功能
持续的软件版本发布/测试项目。
监控外部调用执行的工作。
2、Jenkins 概念
Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的开源项目,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。
3、Jenkins 目的
持续、自动地构建/测试软件项目。
监控软件开放流程,快速问题定位及处理,提提高开发效率。
4、Jenkins 特性
开源的java语言开发持续集成工具,支持CI,CD。
易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
消息通知及测试 告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试 告。
分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
5、产品发布流程
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
持续集成(Continuous integration,简称CI)
持续交付(Continuous delivery)
持续部署(continuous deployment)
3、jenkins安装与使用
1、安装java和maven
2、安装jenkins
yum安装jenkins
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!