实战:向GitHub提交代码时触发Jenkins自动构建

实战:向GitHub提交代码时触发Jenkins自动构建

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

 

原文地址:http://blog.csdn.net/boling_cavalry/article/details/78943061

 

前期准备工作

进行本章的实战前,建议先自行在docker下安装Jenkins做安装和体验的实战,以便对Jenkins服务有初步了解;

 

重要前提

GitHub收到提交的代码后要主动通知Jenkins,所以Jenkins所在服务器一定要有外网IP,否则GitHub无法访问。本次实战要提交源码到GitHub,所以您需要有一个GitHub号,并在上面创建工程;

 

本次用来在Jenkins上构建的工程是个dev_tools工程,地址是:git@github.com:ReluStarry/dev_tools.git,用浏览器访问的地址是:https://github.com/ReluStarry/dev_tools.git

代码主要是模拟mqtt客户端发主题数据。

实践步骤梳理

本次整个实践过程依次为如下步骤:

  1. Github上准备一个工程;
  2. Githhub上配置Jenkinswebhook地址;
  3. Github上创建一个access tokenJenkins做一些权限操作时用得上;
  4. Jenkins安装Github Plugin插件;
  5. Jenkins配置Github访问权限;
  6. Jenkins上创建一个构建项目,对应的源码时步骤1中的工程;
  7. 修改工程的源码,并提交到Github上;
  8. 检查Jenkins的构建项目是否被触发自动构建,构建成功后,下载工程运行,看是不是基于最新的代码构建的;

获取webhook地址

webhook是通知Jenkins时的请求地址,用来填写到GitHub上,这样GitHub就能通过该地址通知到Jenkins

打开Jenkins首页控制控制台 --> 系统管理,如下图

 

Github插件的配置中,点击【高级】按钮,如下图

 

 

自动生成Hook URL,再次提醒,上述地址必须是外网也能访问的,否则GitHub无法访问到Jenkins

 

配置GitHub

登录GitHub,进入要本次构建用到的工程;

在工程主页面点击右上角的"Settings",再点击左侧"Webhooks",然后点击“Add webhook”,如下图:

 

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

 

生成Personal access tokens

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

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

 

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

 

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

 

输入title,再勾选"repo""admin:repo_hook",再点击底部的"Generate token"按钮,就能产生一个新的access token,将此字符串复制下来,后面jenkins任务中会用到:

 

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 

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 tokensDescription随便写一些描述信息,如下图:

 

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

 

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

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

项目主页和仓库地址是不同的,如下图,红框1中是项目主页,点击红框2的按钮后,红框3中是仓库地址(这里使用ssh):

 

项目主页:https://github.com/ReluStarry/dev_tools

仓库地址:git@github.com:ReluStarry/dev_tools.git

创建一个自由风格的项目,参见地址:https://www.cnblogs.com/relustarry/p/13188275.html

 

注意,这几个地方配置:

  1. git的凭证,使用SSH Username with private key类型。否则测试连接不通过,或最终构建拉取代码失败。需在执行机器上先生成ssh key,然后把公钥填写到github上的SSH Key处,把私钥填写在这里。生成密钥的命令:ssh-keygen -t rsa -C xbxia@hongdian.comcd enter】键,进入.ssh目录,获取公钥、私钥内容。如下图

 

  1. 构建触发器

勾选 Github hook trigger for GITScm polling

 

  1. 构建环境

勾选Use secret text(s) or file(s),选择token凭证,如下图

 

验证自动触发

进入Github项目路径,修改代码,并提交。 可在页面上操作。然后观察GitHub Hook Log日志,看是否重新构建项目。如下图

 

posted @ 2021-08-16 16:53  ReluStarry  阅读(173)  评论(0编辑  收藏  举报