概述

今天简单整理了一下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. 持续部署:指在持续交互的基础之上,将要部署的代码实现自动部署,包括持续交互、持续部署


后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

svn增量打包部署_超详细的jenkins持续集成工作原理、功能、部署方式等介绍相关推荐

  1. 超详细的jenkins持续集成工作原理、功能、部署方式等介绍

    文章由LinuxBoy分享于2019-08-30 11:08:39 超详细的jenkins持续集成工作原理.功能.部署方式等介绍 1. 概念 jenkins是一个开源项目,提供了一种易于使用的持续集成 ...

  2. maven 设置打包路径为模块_4、Jenkins持续集成之maven编译

    简介 Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建.自动编译和部署,非常方便.在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服 ...

  3. jenkins不能启用端口_基于K8s的Jenkins持续集成实战(上)

    Jenkins是一款广泛受到的欢迎的持续集成工具,有着丰富的插件以及扩展能力,基本上能够满足大多数团队的需求.本文将从工具使用的角度,来讲述如何在kubernetes集群中使用Jenkins作为持续集 ...

  4. 一步步部署基于Windows系统的Jenkins持续集成环境

    如题:本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境.之所以写本文,是因为在最近工作当中,学习使用Jenkins时,确实遇到了一些问题,而大多数教程文档都是基于Mac或是Lin ...

  5. dat关闭某进程_超详细解析!工程师必会的Linux进程间通信方式和原理

    ▍进程的概念 · 进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放.可以认为进程是一个程序的一次执行过程. ▍进程通信的概念 · 进 ...

  6. 清空缓存的命令_超详细的mysql数据库查询缓存原理解析、涉及命令、流程分析等...

    概述 mysql查询缓存在数据库优化可以起到很大的作用,今天主要针对这一块做一个总结,下面一起来看看吧~ 一.缓存条件,原理 MySQL Query Cache是用来缓存我们所执行的SELECT语句以 ...

  7. 半天搭建你的Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  8. Jenkins持续集成结合Docker Swarm集群实现Web应用部署的发布

    案列环境: 准备5台虚拟机,其中3台用于部署Docker Swarm集群,1台部署代码版本控制系统,1台部署Jenkins持续集成工具. 192.168.80.10 swarm01 192.168.8 ...

  9. svn增量打包部署_实现Jenkins+svn+bat批处理构建svn版本差异增量的自动化打zip包

    最近进到的公司,因为我之前做过自动化测试,所以要求我写一个从svn上面的各个目录拉取需要的代码,集合在一起打zip包.想了想,觉得用批处理+Jenkins持续集成工具来操作应该是可行的,于是就开始着手 ...

最新文章

  1. 1039 到底买不买
  2. 编写程序将一行英文中指定的字符串替换为另一字符串后输出。注意:查找指定字符串_python 3 笔记(一)...
  3. 2017年第八届蓝桥杯C/C++ B组国赛 —— 第三题:希尔伯特曲线
  4. java gzip 解压文件_Java实现文件压缩与解压[zip格式,gzip格式]
  5. 广东省计算机媒体大赛,广东省大学生计算机设计大赛
  6. 6410的系统时钟设置(中)---相关寄存器介绍
  7. nginx学习笔记001---Nginx的启动、停止与重启
  8. (初学者)初学者的编程的苦恼
  9. Proxy error: Could not proxy request错误解决
  10. 用Java操作Office 2007
  11. 大疆飞行模拟(DJI Flight Simulator)软件的使用
  12. 第七章 DirectX 数学向量,碰撞检测和粒子系统(上)
  13. 软件用户手册(软件使用说明书)
  14. 关于mac重启/home目录丢失解决方案
  15. 为什么Hashtab的大小通常取远离2^n 的素数
  16. 产品经理与项目经理-从PMP到NPDP
  17. 隐藏label标签中指定文字
  18. html对称标记,html5/css3 字体 对称渐变+描边+影子
  19. Win10系统里的软件有小盾牌有啥影响吗
  20. 10个Scratch热门作品(2)

热门文章

  1. Linux系统中安装软件的三种方法(一)
  2. 更换百度地图图标html,百度地图接口,自定义图标,点击切换图标
  3. 3条原则,16个小点,帮你写出一个优秀的对外接口!
  4. 你真的了解 ConcurrentHashMap 吗?
  5. TreeSet学习,比较器学习
  6. Kubernentes
  7. 【2019.08.31】2019银川网络赛(2018银川现场赛)
  8. 「CJOJ2573」Snake vs Block
  9. Android 对话框黑色边框的解决
  10. NMEA码详解【转】