jenkins_windows(五):基于github构建自动触发的任务

持续集成(CI)的整个流程目标就是实现自动的拉取代码、编译、打包、部署到远程服务器、自动执行测试,自动发送邮件,从而能够排除人的因素,提高测试的效率。本文我们就介绍如果基于github的源码管理库实现以上流程。以下几基础的配置和插件的安装请参考前4篇文章。

通过ngork,将IP暴露到网络中

GitHub收到push动作后要主动通知Jenkins,所以Jenkins所在服务器一定要有外网IP,否则GitHub无法访问,解决方法:下载ngrok,将IP暴露到网络上。步骤如下:
下载
登录到https://ngrok.com/download下载grok压缩包,选windows版本
在这里插入图片描述

解压缩
将ngrok-stable-windows-amd64.zip文件解压到指定的目录,比如:F:\ngrok-stable-windows-amd64
在这里插入图片描述

获取token
切换到下载页面,单击以下链接,获取token(注意:此步要翻墙)
在这里插入图片描述
在这里插入图片描述

认证token
切换到解压后的目录,执行认证ngrok authoken
(token:3LoDHiNZAGSc3Cdi9ThEW_75ZCKKBh73UCHDc4WdAy)
在这里插入图片描述
在解压后的目录下启动
切换到ngrok所在的目录,启动命令行,执行:ngrok http 8080(8080是tomcat的监听端口),拷贝forwarding指示的ip,后续会用到。注意:cmd的窗口不要关闭

在这里插入图片描述

注意:
关机重启后就要重新进入ngrok所在的目录执行ngrok http 8080命令生成新的IP,同时jenkins和github中的webhook对应的ip也要修改

github中配置webhook

在整个流程中关键的一步就是github监控到指定的仓库有push事件时,就会通知jenkins启动与该仓库关联的任务自动构建,这就需要用到webhook。
webhook是一个HTTP回调,当有指定事件,比如push事件发生时,github可以发起一个HTTP请求到webhook配置的URL通知jenkins发生了push事件,这样只要开发人员提交代码后,都会触发编译、打包、发布以及测试任务的构建。
需要在GitHub中配置webhook,然后在Jenkins中添加此webhook,流程如下:
登录到github,进入到需要监控的仓库,点击settings
在这里插入图片描述

点击Webhooks–>Add webhooks
在这里插入图片描述

设置Payload URL
填写jenkins的服务所在IP地址+jenkins/github-webhook/,如:
https://7f39f40b.ngrok.io/jenkins/github-webhook/
标黄的部分就是用ngrok生成的IP地址,其它值默认即可。
在这里插入图片描述

jenkins中配置Hook URL

进入到jenkins,单击系统管理–>系统设置
在这里插入图片描述

找到GitHub,单击Advanced…
在这里插入图片描述

添加webhook
注意:post地址一定是http://your_jenkins_url/github-webhook/ ,不能去掉最后的“/”
和github中Payload URL的保持一致
在这里插入图片描述
单击页面最底部的save按钮
在这里插入图片描述

构建自动触发的项目(git+sprintboot+maven)

项目源代码是sprintboot实现的,编译打包等操作由maven完成。项目建立过程如下:
进入jenkins首页,单击新建任务
在这里插入图片描述

输入任务名称:比如build_interface
在这里插入图片描述
General:

在这里插入图片描述

Source Code Management:
在这里插入图片描述
url为github上的地址,获取方法:进入github仓库的按如下方法获取url。此仓库就是开发提交的代码仓库,也就是接下来打包的源码。
在这里插入图片描述
可选配置(Advanced clones behaviours):
在这里插入图片描述

构建触发器
在这里插入图片描述
Build
在这里插入图片描述
Root POM:指定构建时的pom.xml,windows下可以不写绝对路径。如果想配置绝对路径的话一般指定jenkins的工作空间即可,默认的情况下:
C:\Users\kongsh.jenkins\workspace\build_interface\pom.xml
高亮显示的分别代表你电脑的用户名和jenkins中的项目名称
Goals and options:以下3种任选其一:
clean package -DskipTests=true
clean install package ‘-Dmaven.test.skip=true’
clean install -Dmaven.test.skip=true
说明:package是打包,不发布到本地库,install=package+发布到本地库。清除class文件,打包构建,-DskipTests跳过单元测试。不配置这一项的话war包发布成功后,第2次构建再访问返回404
构建设置
在这里插入图片描述

构建后操作
我们选择Deploy war/ear to a container的方式,将打包后的war发布到tomcat的webapps目录中,步骤如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

WAR/EAR files:war包所在的路径,相对于jenkins项目的工作空间
Context path:远程tomcat的webapps目录解压后的文件名

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
注意:用户名和密码要和tomcat安装目录下,conf\tomcat-users.xml中的一致

保存设置
在这里插入图片描述

以上配置完成后,可以在jenkins首页可以看到所有构建的项目
在这里插入图片描述
红色表示构建失败;蓝色表示构建成功
在这里插入图片描述
查看详细的构建过程:
在这里插入图片描述
看到构建过程中的信息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改web工程代码并push到Github
在这里插入图片描述
触发项目自动构建
在jenkins首页,或者build_interface任务页面可以看到build_interface任务的自动构建:
在这里插入图片描述

执行日志如下:

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值