Jenkins是一种跨平台的持续集成和交付的应用软件,它便于不断稳定地交付新的软件版本,并提升你的工做效率。这款开发运维工具还让开发人员更容易把项目的变化整合起来,并使用大量的测试和部署技术。php
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各类任务,如构建,测试和部署软件。容许持续集成和持续交付项目,不管用的是什么平台,能够处理任何类型的构建或持续集成。html
Jenkins能实时监控持续集成过程当中所存在的问题,提升详细的日志文件和提醒功能,用图表的形式,形象地展现项目构建的趋势和稳定性。java
Jenkins 是一个用 Java 编写的开源的持续集成工具。它运行在 Servlet 容器中(例如 Apache Tomcat)。它支持软件配置管理(SCM)工具(包括 AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase 和 RTC),能够执行基于 Apache Ant 和 Apache Maven 的项目,以及任意的 Shell 脚本和 Windows 批处理命令。git
使用 Jenkins 构建 Coding 项目是利用 Webhook 向 Jenkins 服务器发送请求。Jenkins 接收到 Webhook 请求后,进行构建。要实现以上功能须要使用 Jenkins 的插件来实现,Jenkins Coding Webhook Plugin 是经过 Jenkins Gitlab Webhook 插件修改而得。安装后便可响应 Coding 的 Webhook 请求。github
CI/CD:持续集成,持续交付/持续部署web
CI(Continuous Integration):软件工程流程,能够帮助开发人员更加频繁地将代码更改合并到共享分支或“主干”中。一旦开发人员对应用所作的更改被合并,系统就会经过自动构建应用并运行不一样级别的自动化测试(一般是单元测试和集成测试)来验证这些更改,确保这些更改没有对应用形成破坏。这意味着测试内容涵盖了从类和函数到构成整个应用的不一样模块。若是自动化测试发现新代码和现有代码之间存在冲突,CI 能够更加轻松地快速修复这些错误。sql
就是说只要开发人员提交新的代码,Jenkins就会马上将新代码与旧代码进行合并构建测试。肯定新代码与原代码是否能够集成在一块儿。docker
持续部署数据库
CD(Continuous Deployment):是持续交付的下一步,若是代码经过评审之后自动部署到生产环节中。在持续交付的基础上,自动部署到生产环境中。处于业务考虑,也能够选择不部署。要想持续部署,必须先实施持续交付。ubuntu
在 Jenkins 插件库里标记的,对 Jenkins 的版本依赖是 1.625.3。 在我司吃本身的狗粮的实践中,目前使用 Jenkins 版本为 2.67。(稳定版为 2.60 / 2.73)
安装
登录到您的 Jenkins 服务器。选择『系统管理』。
点击『管理插件』
选择『可选插件』,在右上方 『过滤』框中,输入『coding』,便可看到『Coding Webhook Plugin』。 勾选后,点击下方的『直接安装』。若是没有搜索到结果,能够点击右下方的『当即获取』,获取后便可看到。
若是搜索不到,还能够前往 这里 下载,进行手动安装。
下面介绍手动安装的方法:
进入插件列表,选择上方『高级』标签
在『高级』标签下,上传插件栏中点击选择文件,选中 coding-wehook.hpi
点击『上传』按钮,便会自动上传后安装。
2 . 配置项目
在 Jenkins 中选择新建项目
进入项目配置页面,在源码管理下选择 Git,并填入项目地址,以及认证的形式。
在构建触发器栏中选择『收到 Coding 发送过来的请求时触发构建』,并填入相应的选项。
若是须要根据 Merge Request 的构建,先点击右侧的问好。
会展开提示信息。
根据提示信息,回到源码管理中,点击『高级』,在 Refspec
中填入+refs/heads/*:refs/remotes/origin/* +refs/merge/*/MERGE:refs/remotes/origin/merge/*
,若是是公开项目,则填入+refs/heads/*:refs/remotes/origin/* +refs/pull/*/MERGE:refs/remotes/origin/pull/*
。
最后能够添加构建的脚步。
回到 Coding 中,在项目的设置中选择添加 Webhook。
添加成功后,便可。
这时,咱们提交一个 Merge Request。
再回到 Jenkins 中,便可看到项目构建的信息。
借助 Jenkins Email插件实现网站构建完成,自动发送邮件给相应的开发人员,开发人员,或者测试人员。
Jenkins发送邮件须要安装Email邮件插件,Email-ext、Token-macro和Email-template.
Jenkins Email邮件配置常见参数:
SMTP server 邮件服务器的地址
Default Content Type 内容展示的格式,通常选择HTML
Default Recipients 默认收件人
Use SMTP Authentication 使用SMTP身份验证
User Name 邮件发送帐户的用户名
基于 Jenkins 自动部署网站的流程大体分为:需求分析----原型分析---开发代码---提交测试---- Jenkins内网部署---确认上线--- Jenkins 备份数据--- Jenkins 外网部署--发布完毕--- Jenkins网站测试等,若是发现外网部署的代码有异常,能够经过 Jenkins及时回滚,如图
常见问题 :
一、用jenkins怎么实现发布和回滚?
回答:发布:jenkins配置好代码路径(SVN或GIT),而后拉代码,打tag。须要编译就编译,编译以后推送到发布服务器(jenkins里面能够调脚本),而后从分发服务器往下分发到业务服务器上。
回滚:按照版本号到发布服务器找到对应的版本推送
连接 :
Jenkins介绍:Jenkins使用教程 : https://www.2cto.com/kf/201712/707935.html
Jenkins 系列 : https://yq.aliyun.com/wenzhang/blog_2636?spm=a2c4e.11155472.0.0.2ab86b04oK6x8g
Jenkins部署Maven项目到Tomcat.txt : http://www.voidcn.com/code/p-qdirodfe-q.html
Jenkins 系列 : https://testerhome.com/search?q=Jenkins
Linux下安装配置Jenkins : http://blog.51cto.com/fangwei009/2087624
实战Jenkins+SVN+tomcat持续集成发布 : http://blog.51cto.com/fangwei009/1977933
Centos7.3系统下搭建Jenkins+ant+Jmeter持续集成自动化搭建步骤 : http://blog.51cto.com/fangwei009/1954030
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台(转) : http://blog.51cto.com/fangwei009/1952504
jenkins实现自动化部署及服务重启-初级 : http://blog.51cto.com/vekergu/1627955
JMeter学习(三十七)Jmeter录制手机app脚本 : http://blog.51cto.com/fangwei009/1911634
ant+jmeter 在Linux环境下接口自动化测试环境搭建(2) : http://blog.51cto.com/fangwei009/1911218
ant+jmeter+Jenkins接口自动化测试实战(1) ; http://blog.51cto.com/fangwei009/1910388
jmeter下载及安装配置 : http://blog.51cto.com/fangwei009/1910385
Windows下ant环境搭建 : http://blog.51cto.com/fangwei009/1910384
持续集成接口自动化-jmeter+ant+jenkins(一) : http://blog.51cto.com/fangwei009/1906033
Jenkins+Jmeter+Ant自动化集成环境搭建 : http://blog.51cto.com/fangwei009/1906030
windows下安装jenkins : http://blog.51cto.com/fangwei009/1882542
Jmeter分布式压测 : http://blog.51cto.com/fangwei009/1886976
使用JMeter建立数据库(Mysql)测试 : http://blog.51cto.com/fangwei009/1877567
JMeter建立FTP测试服务器上传下载性能 : http://blog.51cto.com/fangwei009/1866834
使用Jmeter进行http接口测试 : http://blog.51cto.com/fangwei009/1773724
JMeter安装教程 : http://blog.51cto.com/fangwei009/1751611
windows服务器部署多个不一样端口的tomcat : http://blog.51cto.com/fangwei009/1857337
windows查看端口占用以及关闭相应的进程 : http://blog.51cto.com/fangwei009/1854142
Jenkins与Docker的自动化CI/CD实战 : https://mp.weixin.qq.com/s/gZl9nQuPtMsekjNBcdfE8g
jenkins 按标签发布 : http://blog.51cto.com/sgk2011/1927169
jenkins实战安装java maven项目 : http://blog.51cto.com/sgk2011/1926750
jenkins实战之发布一个php小的项目 : http://blog.51cto.com/sgk2011/1926295
jenkins的安装配置 置顶 : http://blog.51cto.com/sgk2011/1926270
Jenkins+Maven+SVN+Nexus 搭建持续集成环境 : http://blog.51cto.com/abcdocker/2137268
Jenkins 自动化部署上线 : http://blog.51cto.com/abcdocker/2136114
Jenkins (8篇) ; https://www.cnblogs.com/sparkdev/tag/CI%2FCD/
Jenkins 系列 : https://www.cnblogs.com/fawaikuangtu123/category/1386781.html
CentOS 7 Gitlab+Jenkins持续集成+自动化部署 : https://www.cnblogs.com/bigdevilking/p/9544476.html
CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境 :https://www.cnblogs.com/bigdevilking/p/9543092.html
CentOS 7 部署GitLab : https://www.cnblogs.com/bigdevilking/p/9539368.html