Jenkins之配置GitHub-Webhook2
什么是持续集成(Continuous integration)
提出者Martin Fowler本人对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是敏捷开发(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。
持续集成正是针对这一类问题的一种软件开发实践。
持续集成的核心价值在于:
- 减少风险,减少重复过程
- 任何时间、任何地点生成可部署的软件
- 增强项目的可见性
- 建立团队对开发产品的信心
持续集成的原则
- 所有的开发人员需要在本地机器上做本地构建,然后再提交的版本控制库中,从而确保他们的变更不会导致持续集成失败。
- 开发人员每天至少向版本控制库中提交一次代码。
- 开发人员每天至少需要从版本控制库中更新一次代码到本地机器。
- 需要有专门的集成服务器来执行集成构建,每天要执行多次构建。
- 每次构建都要100%通过。
- 每次构建都可以生成可发布的产品。
- 修复失败的构建是优先级最高的事情。
- 测试是未来,未来是测试
Jenkins
Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
1.为什么选择Jenkins
答案简单:因为免费,学习资料多。
2.准备
因为要与Github通信,所以需要准备一台服务器,该服务器能访问到Github,Github能访问到�它。
为了这个测试,我特地在搬 瓦 工VPS买了服务器,顺便介绍一下这个�高性价比的vps供应商,$2.99约合人民币18元每个月,可一键搭建。但是记得有个坑就是购买的时候一定要选好机房,之前买过洛杉矶的卡的要死,打条命令之后要等好久才显示,对它失去信心不想用它了,后来听一个朋友说亚利桑那州(Arizona)的机房挺稳定的,再给它一次机会,这次买了Arizona机房的果然速度挺快的
4.部署
邮件配置
系统管理 >> 系统设置
这里以QQ邮箱配置为例,根据自己的邮件提供商修改


安装Git插件
系统管理 >> 插件管理 >> 可选插件
查找Git plugin,勾选,直接安装,重启Jenkins
Jenkins提供了很多优秀的插件,这里有一篇不错的介绍Jenkins Job相关插件的文章
如果你觉得已有的插件不能满足你的需求,可以自己开发(推荐:浅析Jenkins插件开发)
用户与安全
系统管理 >> 管理用户
可添加和管理用户
系统管理 >> Configure Global Security(安全设置)
可配合安全矩阵管理用户权限
1. 在jenkins上一个job,类型为 Freestyle project。

2. 在项目的配置中,Source选择 git,并输入Reponsitory的url。

备注:
Creentials: 添加github账号,添加的账号需要对repository有写的权限。
Branches to build: 选择一个监听的branch
3. Build选择 Execute Windows batch command。
输入command
python JenkinsTest.py

4. Build now,保证能build成功,可以在Console Output中查看详细信息。

5. 在项目的配置中,选择构建触发器 "GitHub hook trigger for GITScm polling"。

6. 启动ngrok服务,获得本机8080端口的面向外网的url。
理解: 因为Jenkins的地址是http://localhost:8080,这个地址只能在本机访问,GitHub是访问不到这个网址的,所以要把本机的8080端口也能让外网访问的到暴露给外网。
通过这个网址下载ngrok: https://ngrok.com/download
打开ngrok.exe文件,运行 ngrok.exe http 8080,暴露出8080端口号。
注意: 这个只能8小时之内有效。
得到url: http://d01e74e1.ngrok.io

7. 在Jenkins中设置Jenkins的url,这个url是步骤6中得到的。

这一步也可以通过Override Hook URL来设置。
8. GitHub项目设置Webhooks
在Payload url中输入:http://d01e74e1.ngrok.io/github-webhook/
注意: 一定要有后面的 /github-webhook

9. Push一个commit测试
10. 在Github上查看webhook的状态

11. 此时Jenkins就应该产生一个build,在console里面查看log信息。

参考:https://www.jianshu.com/p/b2ed4d23a3a9
Jenkins之配置GitHub-Webhook2的更多相关文章
- 配置GitHub Push自动触发Jenkins的构建
这里以gitbook的项目为例,GitHub中的gitbook项目部署在Jenkins中,执行git push命令时自动执行Jenkins构建,其他项目只是最后的执行脚本不同 环境准备 安装Jenki ...
- 在Jenkins中获取GitHub对应Repository的Resource Code
1):Install Jenkins 请看如下链接: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins 2):Install ...
- Jenkins+Git配置
Jenkins+Git配置 一.GitHub上配置 前提:Jenkins能正常打开 将本地文件上传到GitHub上:进入终端 cd Documents cd project git clone htt ...
- Jenkins中配置邮件通知实例演示
前言:本文通过安装配置Jenkins实现邮件通知,告知一个C# Git Repo的build成功与否 一.预配条件 在windows上安装Jenkins和它推荐安装的Plugins 创建一个@163. ...
- Jenkins 简单配置
安装就不说了, 因为安装实在是很简单的. Jenkins基础配置 配置jdk 和maven 进入Global Tool Configuration, 配置JDK: 一般不要选择自动安装, 否则下载 ...
- jenkins 分布式配置+allure集成+邮件发送
jenkins节点配置+allure集成+邮件发送这一套走下来感觉很麻烦,要配置的东西太多了,所以在此记录一下,防止以后忘了. 环境: 主机master:腾讯云服务器ubuntu18.04 执行机sl ...
- Jenkins安装配置 远程发布SpringBoot项目
环境要求: Java : 1.8.0_161. Maven :http://maven.apache.org/download.cgi 3.6.1 下载完解压,配置环境变量:vim /etc/prof ...
- 漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃monkey日志
漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃日志 1.APP崩溃率标准 开发或测试app的同学,对于app崩溃肯定非常熟悉,频繁的线上崩溃属 ...
- 微服务下的持续集成-Jenkins自动化部署GitHub项目
@ 目录 一.前言 二.DevOps概念 三.为什么要做持续集成 四.常见云服务 五.手动部署Jenkins 5.1 准备工作 5.2 下载 5.3 启动 5.4 配置 5.5 Jenkins 首页 ...
- CentOS安装gitlab,gerrit,jenkins并配置ci流程
CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...
随机推荐
- day39—JavaScript缓冲运动
转行学开发,代码100天!——2018-04-24 今天继续学习JavaScript运动之缓冲运动.相对于匀速运动,缓冲运动的不同之处在于其速度值是不断变化的,越靠近目标点,速度越小. 即可以表示为: ...
- 测开之路八十三:高级函数:map()和filter()
# map(函数名,可迭代对象)# 给可迭代对象的每个值+5l = list(range(1, 21)) def add_number(x): return x + 5 # 第一种方式print ...
- python读写excle
我们可以通过python的一些模块进行excle中用例的读取,或者导出数据到excle 目录 1.安装模块 2.读excle 3.写excle 1.安装模块 python中有第三方模块可以进行excl ...
- python判断字符串是否是json格式方法分享
python判断字符串是否是json格式方法分享 在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例: ...
- css设计丝带
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8&quo ...
- (appium+python)UI自动化_02_appium启动手机app
前提:需先安装配置好appium+python自动化环境,已配置好环境的小伙伴可以参考以下步骤启动Android app,具体步骤如下: 一.USB连接手机 (1)手机USB连接电脑 (2)手机打开开 ...
- 【Unity知识点】安卓游戏如何在切后台后继续运行
解决方法很简单,在android项目AndroidManifest.xml文件中的activity中添加如下内容: android:configChanges="fontScale|keyb ...
- MySQL 查询语句--------------进阶5:分组查询
#进阶5:分组查询 /* select 分组函数,列(要求出现在group by的后面) from 表 [where 筛选条件] group by 分组的列表 [order by 子句] 注意: 查询 ...
- Robotframework使用自写库连接mysql数据库
Robotframework使用自写库连接mysql数据库 新建库文件mysqltest.py 代码如下: # -*- coding: utf-8 -*- import MySQLdbimport o ...
- E-puck简单入门
E-puck是瑞士的一款小型的机器人,可以用于教学和实验,其外形小巧,并且整个结构也比较简单,如果出现损坏也比较容易维护. 其外形如下: 因为国内的资料很少,资料主要还是通过官方文档了解,而官方的文档 ...