文档章节

使用 Jenkins 构建 Coding 项目 (资源)

寰宇01
 寰宇01
发布于 2018/04/23 21:56
字数 2333
阅读 1.5K
收藏 2

Jenkins简介

       Jenkins是一种跨平台的持续集成和交付的应用软件,它便于不断稳定地交付新的软件版本,并提高你的工作效率。这款开发运维工具还让开发人员更容易把项目的变化整合起来,并使用大量的测试和部署技术。

    Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

 

    Jenkins能实时监控持续集成过程中所存在的问题,提高详细的日志文件和提醒功能,用图表的形式,形象地展示项目构建的趋势和稳定性。

使用 Jenkins 构建 Coding 项目

 

Jenkins 是一个用 Java 编写的开源的持续集成工具。它运行在 Servlet 容器中(例如 Apache Tomcat)。它支持软件配置管理(SCM)工具(包括 AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase 和 RTC),可以执行基于 Apache Ant 和 Apache Maven 的项目,以及任意的 Shell 脚本和 Windows 批处理命令。

使用 Jenkins 构建 Coding 项目是利用 Webhook 向 Jenkins 服务器发送请求。Jenkins 接收到 Webhook 请求后,进行构建。要实现以上功能需要使用 Jenkins 的插件来实现,Jenkins Coding Webhook Plugin 是通过 Jenkins Gitlab Webhook 插件修改而得。安装后即可响应 Coding 的 Webhook 请求。

CI/CD:持续集成,持续交付/持续部署

 

持续集成

 

    CI(Continuous Integration):软件工程流程,可以帮助开发人员更加频繁地将代码更改合并到共享分支或“主干”中。一旦开发人员对应用所做的更改被合并,系统就会通过自动构建应用并运行不同级别的自动化测试(通常是单元测试和集成测试)来验证这些更改,确保这些更改没有对应用造成破坏。这意味着测试内容涵盖了从类和函数到构成整个应用的不同模块。如果自动化测试发现新代码和现有代码之间存在冲突,CI 可以更加轻松地快速修复这些错误。

 

    就是说只要开发人员提交新的代码,Jenkins就会立刻将新代码与旧代码进行合并构建测试。确定新代码与原代码是否可以集成在一起。

持续部署

 

    CD(Continuous Deployment):是持续交付的下一步,如果代码通过评审以后自动部署到生产环节中。在持续交付的基础上,自动部署到生产环境中。处于业务考虑,也可以选择不部署。要想持续部署,必须先实施持续交付。

Jenkins 版本

在 Jenkins 插件库里标记的,对 Jenkins 的版本依赖是 1.625.3。 在我司吃自己的狗粮的实践中,目前使用 Jenkins 版本为 2.67。(稳定版为 2.60 / 2.73

安装配置 Jenkins Coding Webhook Plugin

  1. 安装

    登陆到您的 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

回到 Coding 中,在项目的设置中选择添加 Webhook。

添加成功后,即可。

这时,我们提交一个 Merge Request。

再回到 Jenkins 中,即可看到项目构建的信息。

Jenkins邮件配置

通过控制信息可以查看每个JOB工程构建的状态

借助 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及时回滚,如图

 

常见问题 :

1、用jenkins怎么实现发布和回滚?

回答:发布:jenkins配置好代码路径(SVN或GIT),然后拉代码,打tag。需要编译就编译,编译之后推送到发布服务器(jenkins里面可以调脚本),然后从分发服务器往下分发到业务服务器上。

回滚:按照版本号到发布服务器找到对应的版本推送

 

 

链接 :

(易百教程)  Jenkins教程  : https://www.yiibai.com/jenkins/

Jenkins使用简易教程 (安装配置) :  https://www.jianshu.com/p/b524b151d35f

(w3c school)Jenkins官方文档   : https://www.w3cschool.cn/jenkins/

使用Jenkins进行持续集成   :    https://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000

 

Jenkins介绍:Jenkins使用教程      : https://www.2cto.com/kf/201712/707935.html

Jenkins入门教程之--Jenkins管理  : https://yq.aliyun.com/ziliao/321229

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

Jenkins安装和配置 (ubuntu16.04)  :https://www.jianshu.com/p/1a7f46896c40

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/

 

053-Jenkins : https://mp.weixin.qq.com/s/1fN3fbq9jO9lGzEz2-igGw

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

详解 Jenkins 自动化部署平台  :  https://mp.weixin.qq.com/s/Gnqsrh_UIarsd2det7WOkA

sonar+Jenkins 构建代码质量自动化分析平台https://mp.weixin.qq.com/s/UuvsM-p8xveNlgkv9OC51Q

 

 

 

 

本文转载自:https://open.coding.net/ci/jenkins/

寰宇01
粉丝 24
博文 427
码字总数 993177
作品 0
南京
程序员
私信 提问
使用Jenkins配置iOS自动化构建工具

使用Jenkins配置iOS自动化构建工具 关于iOS自动化构建其实并不复杂,通过一些简单的Git与Xcode指令,加上UI,我们自己也可以动手编写一款自动化构建工具。这在之前的博客中也有涉及,有兴趣的...

珲少
2018/06/28
596
0
搭建基于Jenkins, Apache Mesos和Marathon的弹性高可用的持续集成环境

【编者按】持续集成的开发实践是目前的一个热门话题,在本文中,数人科技云平台负责人周伟涛解析其利用开源的Jenkins,Apache Mesos和Marathon搭建弹性的,高可用的持续集成环境的实践,详细...

测试dog
2016/03/02
279
3
基于 Kubernetes 的 Jenkins 构建集群实践

在大型团队的 CI 构建里具有丰富最佳实践的经验。今天我给大家分享的更多是聚焦在 Jenkins 本身,结合我在 Jenkins 实际使用过程中和整个 Jenkins Slave 管理演化的过程的案例,这样能给大家...

店家小二
2018/12/14
0
0
Jenkins +nginx 搭建前端构建环境

前期准备 liunx 基本命令 git 基本命令 nginx jenkins 工具 github 账号和项目 git centos 服务器 坐稳啦! 要发车啦! 首先登录你远程服务器地址 输入远程服务器地址 首次登录有提示信息 输...

幸福拾荒者
2018/07/02
0
0
从0开始搭建自动部署环境(续)

从0开始搭建自动部署环境(续) 前言 上一篇从0开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。本来应该写到上一篇中,但是这样做篇幅过长了。另外,此篇会使用自动部署一...

五毛程序员
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C#如何创建Guid值?

我们结构的一个字段是Guid类型。 如何为它生成有效值? #1楼 System.Guid desiredGuid = System.Guid.NewGuid(); #2楼 Guid id = Guid.NewGuid(); #3楼 Guid.NewGuid()创建一个新的随机gui...

技术盛宴
9分钟前
15
0
将idea中的springboot项目部署到远程的docker容器

1、在idea中创建项目,如下图 2、配置docker maven plugin <!-- Docker maven plugin --><plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifact......

Lion华
22分钟前
26
0
在C中,i ++和++ i之间是否存在性能差异?

如果不使用结果值, i++和++i之间会有性能差异吗? #1楼 请不要让“哪个更快”的问题成为使用哪个的决定因素。 您永远都不会在乎那么多,此外,程序员的阅读时间比机器学习的时间要昂贵得多。...

javail
25分钟前
26
0
Android MVP 快速开发框架ZBLibrary

MVP 架构,提供一套开发标准(View,Data,Event)以及模板和工具类并规范代码。封装层级少,简单高效兼容性好。 OKHttp、UIL图片加载、ZXing二维码、沉浸状态栏、下载安装、自动缓存以及各种B...

boonya
34分钟前
33
0
为BlueLake主题增加图片放大效果

fancyBox 是一个流行的媒体展示增强组件,可以方便为网站添加图片放大、相册浏览、视频弹出层播放等效果。优点有使用简单,支持高度自定义,兼顾触屏、响应式移动端特性,总之使用体验相当好...

CREATE_17
41分钟前
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部