持续集成平台jenkins
一. 什么是持续集成
1. 概念
持续集成(Continuous Integration),也就是我们经常说的CI
持续集成(CI)是一种实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷
2. 为什么要使用持续集成
bug总是在最后才发现
越到项目后期,问题越难解决
软件交付时机无法保障
程序经常需要变更
无效的等待变多
3. 多人开发流程图
多人协作开发,由于开发只会测试自己的代码,多人的代码集成在一起,难免会出现这样那样的bug。这时就需要jenkins对集成后的代码进行打包编译,如果有问题会进行反馈
持续集成并不是要等到项目稳定,而是在项目一开始就要进行,这样才能尽早发现问题,解决问题
二. 持续集成的用途(标红色的都是)
三. 持续集成的好处
1. 解放了重复性劳动
2. 更快地修复问题
3. 更快地交付成果
4. 减少了手工的错误
人和机器的一个最大的区别是,在重复性劳动上,人容易犯错,而机器犯错的几率几乎为零。所以,当我们搭建完成集成服务器后,以后的事就交给集成服务器来打理吧
5. 减少了等待时间
持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间可以出现的等待时间
持续集成,意味着开发、集成、测试、部署也得以持续
6. 更高的产品质量
集成服务器往往提供 Code review、代码质量检测等功能
对代码不规范或者有错误的地方会进行标识,也可以设置邮件、短信等进行警告
而开发人员通过 Code review 也可以持续提高编程的能力
四. jenkins 介绍
一款持续集成工具
1. 环境安装:
1). jdk 1.8
2). jenkins下载地址: https://jenkins.io/download/ 下载 Long-term Support(LTS) 下的版本
2. jenkins 概念
1). Job
在jenkins平台中,都是以Job(任务/工程)为单位去完成一件事情的
2). plugin(插件)
jenkins提供平台,集成各种插件来完成一个Job。想用jenkins平台来做什么,先找找有没有相应的插件。比如:windows命令、linux命令的支持、svn和git代码获取、邮件发送等
路径:系统管理 -> 管理插件 -> 可选插件
3). workspace(工作空间)
jenkins是通过文件形式来存储和管理数据的
workspace即给jenkins指定一个专门的目录来存储其所有的配置和数据
jenkins的workspace是根目录。每个Job都有属于自己的workspace(任务之间互不相干)
路径:系统管理 -> 系统设置
4). jenkins管理(Jenkins Manager)
整个jenkins的全局配置,包括权限管理、插件管理、节点管理等
3. jenkins Job详解
1). 基本信息配置(General)
Job名字、指定当前Job的工作空间、指定当前Job绑定到哪个执行机上执行等
2). 源码管理(Source Code Management)
svn/git等,需要相应的插件支撑
配置好源码管理后,在执行Job时会自动从相应的源码库里下载代码到当前Job的工作空间中
3). 构建触发器(Build Triggers)
触发器:执行当前任务的条件
常用定时构建:类似windows/linux的定时任务。指定当前Job执行的时间
定时构建1:要求每天9点,14点,20点运行这个任务(其中*代表所有的有效值)
注意:如果0-0用H代替,会出现不整点的情况
定时构建2:要求每天9点到14点之间,每整点运行这个任务(其中*代表所有的有效值)
定时构建3:要求周一到周六每天9点到14点之间,每整点运行这个任务(其中*代表所有的有效值)
Poll SCM
4). 构建环境(Build Environment)
5). 构建(Build)
6). 构建后操作(Post-build Actions)
详细配置邮件请参考 jenkins自动发送邮件配置
持续集成平台jenkins的更多相关文章
- 使用jenkins构建持续集成平台
jenkins + Maven + svn/git + tomcat 的持续集成平台 项目管理流程: 需求分析----原型设计----开发代码----提交测试-----内部测试-----确认上线( ...
- 研发协同平台持续集成之Jenkins实践
导读 研发协同平台有两个核心目标,一是提高研发效率 ,二是提高研发质量,要实现这两个核心目标,实现持续集成是关键之一. 什么是持续集成 在<持续集成>一书中,对持续集成的定义如下:持续集成 ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1 Jenkins的Master-Slave分布式构建 什么是Master-Slave分布式构建 Jenkins的Master-S ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Mas ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(下)
基于Kubernetes/K8S构建Jenkins持续集成平台(下) Jenkins-Master-Slave架构图回顾: 安装和配置NFS NFS简介 NFS(Network File System ...
- ThoughtWorks持续集成平台GO开源了
ThoughtWorks 持续集成平台Go最近宣布开源了.其基于Apache 2.0 开源协议. Go下载地址为http://www.go.cd/download/. 下面是几张来自官方的视图: GO ...
- 老李分享:持续集成学好jenkins
老李分享:持续集成学好jenkins poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest测试开发工程师就业培训请大 ...
- <自动化测试方案_9>第九章、持续集成平台搭建
第九章.持续集成平台搭建 (一)什么是持续集成 参考文章地址:https://blog.csdn.net/qq_32261399/article/details/76651376 敏捷软件开发(英语: ...
- 使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置
安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclips ...
随机推荐
- Python迭代器包itertools(转)
原文:http://www.cnblogs.com/vamei/p/3174796.html 作者:Vamei 在循环对象和函数对象中,我们了解了循环器(iterator)的功能.循环器是对象的容器, ...
- PEP8 Python 编码规范整理(Python)
add by zhj: 这个是豆瓣网友整理的PEP8,算是PEP8的一个简易版本,因为原PEP8内容太多,所以建议先看这篇文章,然后再看PEP8中文翻译 原文:http://www.douban.co ...
- RabbitMQ_消息队列基本使用_1
什么叫消息队列 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象. 消息队列(Message Queue)是一种应用间的通信方式,消 ...
- 部署samba
1.首先需要关闭防火墙 2,创建用户名 3.IP地址配置ping下能不能成功 4.yum install samba -y 进行软件包的安装 5,vim修改.etc/samba/smb.conf/的配 ...
- git读取配置文件的顺序
a.查找系统配置文件: /etc/gitconfig 文件,该文件含有系统里每位用户及他们所拥有的仓库的配置值 b.查找用户配置文件: ~/.gitconfig 文件 或者 ~/.config/ ...
- Linux中的环境变量配置文件及其作用
登录相关的配置文件: /etc/profile 范围:对所有用户生效 作用: a.定义USER变量 b.定义LOGNAME变量 c.定义MAIL变量 d.定义PATH变量 e.定义HOSTNAME变量 ...
- vuejs组件通信
<body> <div id="example"> <father></father> </div> </body ...
- 数据性能调校——查看最耗资源的各种SQL
从计划高速缓存中清除查询计划 DBCC FREEPROCCACHE 清除缓存中的过程 DBCC DROPCLEANBUFFERS清除内存中的数据 SELECT DB_ID('你的数据库名') tota ...
- MySQL安装后的设定及其变量(参数)的设置
1.为所有root用户设定密码:mysql> SET PASSWORDmysql> update mysql.user SET password=PASSWORD("your_p ...
- OpenGL学习进程(4)第二课:绘制图形
本节是OpenGL学习的第二个课时,下面介绍如何用点和线来绘制图形: (1)用点的坐标来绘制矩形: #include <GL/glut.h> void display(void) ...