jenkins github 自动部署

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

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

前期准备工作

进行本章的实战前,推荐您参照《docker下的Jenkins安装和体验》做安装和体验的实战,以便对Jenkins服务有初步了解;

重要前提

  1. GitHub收到提交的代码后要主动通知Jenkins,所以Jenkins所在服务器一定要有外网IP,否则GitHub无法访问,我的Jenkins服务器是部署在腾讯云的云主机上,带有外网IP;
  2. 本次实战要提交源码到GitHub,所以您需要有一个GitHub号,并在上面创建工程;

demo工程源码

本次用来在Jenkins上构建的工程是个springboot的web工程,地址是:https://github.com/Mr-wp/test.git,用浏览器访问的地址是:https://github.com/Mr-wp/test.git
代码很简单,只有一个html,接收http请求返回一个字符串,如下所示:

<html>
        <head></head>
        <body>
                <h3>hello boy!! I`m coming!</h3>
        </body>

</html>

您需要在自己的GitHub创建一个项目,源码可以参照上述demo工程的源码;

实战步骤梳理

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

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

webhook地址

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

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

配置GitHub

  1. 登录GitHub,进入要本次构建用到的工程;
  2. 在工程主页面点击右上角的"Settings",再点击左侧"Webhooks",然后点击“Add webhook”,如下图:
    这里写图片描述
  3. 如下图,在"Payload URL"位置填入webhook地址,再点击底部的"Add webhook按钮",这样就完成webhook配置了,今后当前工程有代码提交,GitHub就会向此webhook地址发请求,通知Jenkins构建:
    这里写图片描述

生成Personal access tokens

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

  1. 登录GitHub,进入"Settings"页面,点击左下角的"Developer settings",如下图:
    这里写图片描述
  2. 跳转到"Developer settings"页面后,点击左下角的“Personal access tokens”,如下图:
    这里写图片描述
  3. 跳转到"Personal access tokens"页面后,点击右上角的"Generate new token"按钮,如下图:
    这里写图片描述
  4. 可能会提示输入GitHub密码,输入后跳转到创建token的页面,如下图所示,输入title,再勾选"repo"和"admin:repo_hook",再点击底部的"Generate token"按钮,就能产生一个新的access token,将此字符串复制下来,后面jenkins任务中会用到:
    这里写图片描述

Jenkins配置

  1. GitHub Plugin插件,在"系统管理->管理插件"位置检查此插件是否已经安装,没有的话请先安装;
  2. 配置GitHub,点击“系统管理->系统设置”,如下图:
    这里写图片描述
  3. 在系统设置页面找到"GitHub",配置一个"GitHub Server",如下图,“API URL"填写"https://api.github.com”,“Credentials"位置如下图红框所示,选择"Add->Jenkins”:
    这里写图片描述
  4. 弹出的页面中,“Kind"选择"Secret text”,"Secret"填入前面在GitHub上生成的Personal access tokens,Description随便写一些描述信息,如下图:
    这里写图片描述
  5. 填写完毕后,点击右侧的"Test connection"按钮,如果信息没有填错,显示的内容如下图所示:
    这里写图片描述
  6. 点击页面最底部的"保存"按钮;

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

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

项目主页:https://github.com/Mr-wp/test
仓库地址:https://github.com/Mr-wp/test.git

新建构建项目

在Jenkins上新建一个maven构建项目,名为test003,如下图:
这里写图片描述

接下来设置test003的配置信息,分为"源码管理设置"和"构建环境设置"两部分;

源码管理设置


上图中每个红框的设置如下解释:

  1. 选择"Git";
  2. "Repository URL"输入仓库地址:https://github.com/Mr-wp/test.git
  3. “Credentials"创建一个Credentials,Kind选择"Username with password”,Username输入GitHub账号,Password输入GitHub密码;
  4. “源码库浏览器"选择"githubweb”;
  5. "URL"输入项目主页:https://github.com/Mr-wp/test
  6. “构建触发器"中勾选"GitHub hook trigger for GiTScm polling”;

构建环境设置

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

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

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

将GitHub仓库的代码clone到本地,做一些修改然后提交到GitHub上,例如我修改了index.html中的源码,如下所示:

<html>
        <head></head>
        <body>
                <h3>hello boy!!</h3>
        </body>

</html>

提交到GitHub的操作如下图所示:

Jenkins自动构建

回到Jenkins的test003页面,可以看到已经开始自动构建了,如下图:
这里写图片描述

验证自动构建结果

  1. 在test003的页面,点击"工作空间"->“工作区”,如下图:
  2. 点击下图红框中的"index.html",浏览器就会自动打开这个文件:
  3. 浏览器输入localhost:8080或者项目配置域名,可以看到web应用返回的内容是我们刚刚提交的最新内容,如下图:

至此,GitHub提交触发Jenkins自动构建的实战就完成了,希望能对您搭建持续构建环境有所帮助。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值