向GitHub提交代码时触发Jenkins自动构建(webhook)

当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建;

 

您需要在自己的GitHub创建一个项目,首先项目源代码,很简单,一个hello word

package com.xf.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
        System.out.println("hello word demo start complete.......................................................................................");
    }



    @RequestMapping("/hello")
    public String helloWord() {
        return "hello word!";
    }
}

本次步骤:

GitHub上准备一个spring boot的web工程;
GitHub上配置Jenkins的webhook地址;
在GitHub上创建一个access token,Jenkins做一些需要权限的操作的时候就用这个access token去鉴权;
Jenkins安装GitHub Plugin插件;
Jenkins配置GitHub访问权限;
Jenkins上创建一个构建项目,对应的源码是步骤1中的web工程;
修改web工程的源码,并提交到GitHub上;
检查Jenkins的构建项目是否被触发自动构建,构建成功后,下载工程运行,看是不是基于最新的代码构建的;
--------------------- 

webhook地址

webhook是通知Jenkins时的请求地址,用来填写到GitHub上,这样GitHub就能通过该地址通知到Jenkins;
假设Jenkins所在服务器的地址是:120.77.241.105,端口为8080,那么webhook地址就是http://120.77.241.105:8080/jenkins/github-webhook/

另外webhook里填的post地址一定是http://your_jenkins_url/github-webhook/ ,不能去掉最后的那个“/”。

再次提醒,上述地址必须是外网也能访问的,否则GitHub无法访问到Jenkins;

配置GitHub

  1. 登录GitHub,进入要本次构建用到的工程;
  2. 在工程主页面点击右上角的"Settings",再点击左侧"Webhooks",然后点击“Add webhook”,如下图:

如下图,在"Payload URL"位置填入webhook地址,再点击底部的"Add webhook按钮",这样就完成webhook配置了,今后当前工程有代码提交,GitHub就会向此webhook地址发请求,通知Jenkins构建:

 

生成Personal access tokens
Jenkins访问GitHub工程的时候,有的操作是需要授权的,所以我们要在GitHub上生成授权的token给Jenkins使用,这就是Personal access tokens,生成步骤如下:

登录GitHub,进入"Settings"页面,点击左下角的"Developer settings",如下图:

跳转到"Developer settings"页面后,点击左下角的“Personal access tokens”,如下图:

跳转到"Personal access tokens"页面后,点击右上角的"Generate new token"按钮,如下图:

可能会提示输入GitHub密码,输入后跳转到创建token的页面,如下图所示,输入title,再勾选"repo"和"admin:repo_hook",再点击底部的"Generate token"按钮,就能产生一个新的access token,将此字符串复制下来,后面jenkins任务中会用到:

Jenkins配置

  1. GitHub Plugin插件,在"系统管理->管理插件"位置检查此插件是否已经安装,没有的话请先安装;
  2. 配置GitHub,点击“系统管理->系统设置”

在系统设置页面找到"GitHub",配置一个"GitHub Server",如下图,“API URL"填写"https://api.github.com”,“Credentials"位置如下图红框所示,选择"Add->Jenkins”:

 

 

弹出的页面中,“Kind"选择"Secret text”,"Secret"填入前面在GitHub上生成的Personal access tokens,Description随便写一些描述信息,如下图:

 

填写完毕后,点击右侧的"Test connection"按钮,如果信息没有填错,显示的内容如下图所示:

最后点击页面最底部的"保存"按钮;

GitHub项目的项目主页和仓库地址

 

新建构建项目

源码管理设置

 

 

构建环境

如下图所示,勾选"Use secret text(s) or file(s)",下面的"Credentials"选择我们之前配置过的"Personal access tokens"

设置完成后,点击页面底部的"保存"按钮;

修改web工程代码并提交到GitHub

将GitHub仓库的代码clone到本地,做一些修改然后提交到GitHub上

 

Jenkins自动构建

回到jenkins已经在开始构建了

 

验证自动构建结果

  1. 在maven-test的页面,点击"工作空间"->“工作区”,如下图:

点击下图红框中的"test-0.0.1-SNAPSHOT.jar",浏览器就会下载这个文件

 

 

下载成功后,在test-0.0.1-SNAPSHOT.jar所在目录下执行命令java -jar test-0.0.1-SNAPSHOT.jar,web应用启动成功,如下图:

浏览器输入localhost:8080/hello,可以看到web应用返回的内容是我们刚刚提交的最新内容

至此,GitHub提交触发Jenkins自动构建的实战就完成了

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值