jenkins持续集成⼯作原理、功能、部署⽅式等介绍
持续集成的概念超详细的jenkins持续集成⼯作原理、功能、部署⽅式等介绍
原创波波说运维 2019-08-29 00:01:00
概述
今天简单整理了⼀下jenkins的⼀些概念性内容,归纳如下:
1、概念
jenkins是⼀个开源项⽬,提供了⼀种易于使⽤的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实时监控集成中存在的错误,提供详细的⽇志⽂件和提醒功能,还能⽤图表的形式形象地展⽰项⽬构建的趋势和稳定性。Jenkins可以构建⼀个⾃动化的持续集成环境可以使⽤它来“⾃动化”编译、打包、分发部署应⽤,它兼容ant、maven、gradle等多种第三⽅构建⼯具,同时与svn、git能⽆缝集成,也⽀持直接与知名源代码托管⽹站,如github、bitbucket直接集成。
2、Jenkins的功能
1. 定时拉取代码并编译
2. 静态代码分析
3. 定时打包发布测试版
4. ⾃定义操作,如跑单元测试等
5. 出错提醒
3、原理
这⾥是选择Gitlab作为git server。Gitlab的功能和Github差不多,但是是开源的,可以⽤来搭建私有git
server,也提供⾮常强⼤的web GUI,⽐如开发者互相review源代码的时候就会很⽅便。系统的⼯作流程⼤概分为以下⼏步:
1> 开发者将新版本push到git server (Gitlab)。
2> Gitlab随后触发jenkins master结点进⾏⼀次build。(通过web hook或者定时检测)
3> jenkins master结点将这个build任务分配给若⼲个注册的slave结点中的⼀个,这个slave结点根据⼀个事先设置好的脚本进⾏build。这个脚本可以做的事情很多,⽐如编译,测试,⽣成测试报告等等。这些原本需要⼿动完成的任务都可以交给jenkins来做。
4> 我们在build中要进⾏编译,这⾥使⽤了分布式编译器distcc来加快编译速度。
jenkins的⼯作原理是先将源代码从gitlab中拷贝⼀份到本地,然后根据设置的脚本进⾏build。我们可以看出,整个系统的关键就是那个build 脚本,⽤来告诉jenkins在⼀次集成中需要执⾏的任务。
不过我之后是⽤的Github作为git server。但其实差不多。
4、部署⽅式
1、jenkins触发式构建:
⽤于开发环境部署,开发⼈员push代码或者合并代码到gitlab项⽬的master分⽀,jenkins就部署代码到对应服务器。
2、jenkins参数化构建:
⽤于测试环境预上线环境部署,开发push代码或者合并代码到gitlab项⽬的master分⽀之后,并不会部署代码,⽽是需要登录到jenkins的web界⾯,点击构建按钮,传⼊对应的参数(⽐如参数需要构建的tag,需要部署的分⽀)然后才会部署。
3、jenkins定时构建:
⽤于APP⾃动打包,定时构建是在参数化构建的基础上添加的,开发⼈员可以登录jenkins⼿动传⼊tag进⾏打包,如果不⼿动打包,那么jenkins就每天凌晨从gitlab拉取最新的APP代码打包。
5、持续集成的分类
1. 持续集成:指程序员在代码的开发⼯程中,可以频繁的将代码部署到主⼲上,并进⾏⾃动化测试
2. 持续交互:指在持续集成的基础之上,将代码部署到线上测试环境
3. 持续部署:指在持续交互的基础之上,将要部署的代码实现⾃动部署,包括持续交互、持续部署
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论