一、先介绍正向代理和反向代理

正向代理

反向代理

二、安装反响代理得到固定域名

http://www.xiaomiqiu.cn/

三、Jenkins与Github集成

配置前要求:

1.Jenkins已经安装Github插件

2.Jenkins服务器已经拥有一个公网IP地址(如果没有公网IP则需要安装反向代理进行获取域名)

第一步:github授权,关联项目

登录github---->setting---->Developer settings--->Personal access tokens

 
 

Generate new token(选repo,admin:repo_hook)

 
 

拉到下面确定生成token

 
 

第二步:配置Jenkins全局

尽管Jenkins已经配置与Github代码库进行通信,但我们需从Jenkins手动启动构建,如需启动自动构建,Jenkins需要在Hook URL中监听Github的Post请求,才会进行自动构建

要获取Jenkins的Hook URL,打开Jenkins首页控制台--》系统管理

在Github插件的配置中,点击“高级”按钮

启用Hook URL,并将Hook URL复制出来,并保存刚才的设置

第二步:配置Github项目仓库

还需要配置Github项目仓库,因为Github经常有代码处理动作,需要配置Github项目仓库在处理这些动作的同时会发送信号至Jenkins,才使用Jenkins自动构建

在"Webhooks"选项卡中,点击"Add webhook"

将在Jenkins生成的Hook URL填入至Payload URL中,另外,选择自主事件

以Push为例,并保存,即当Github收到了客户端有Push动作时,会触发一个Hook

保存WebHook之后

第三步:配置Jenkins项目

最后需要配置Jenkins项目触发的条件,到此刻,Github遇到Push事件时,Jenkins会收到通知,但Jenkins应该做什么呢?此步骤就是做最后的构建的动作。

登录jenkins,系统管理,系统设置,找到Github服务器

 
 
 
 
 
 

保存
jenkins创建任务

 
 

任务配置

 
 
 
 
 
 
 
 
这里根据具体情况而定,我是使用了ssh,
 
 
 

先save保存,目前为止jenkins已成功与github项目关联了,如果push代码到github上,jenkins就可以得到通知了,关于得到通知后下一步怎么更新服务器上的代码并重启项目,看这里jenkins+docker+github实现项目自动部署(下)

紧接上文,本文实现push代码到github,服务器自动更新代码并重启

想要更新服务器的代码有很多方式,比如如果你项目是java web项目,你可以打包成war包,再发送到服务器的tomcat文件夹下。
我这里采取的方式是在项目里写一个启动脚本,启动脚本里git pull拉取最新代码,这样来更新代码,然后脚本里重启项目,以springboot项目为例,脚本代码如下:

#!/usr/bin/env bash

git pull  #更新代码

#后面这些不重要,就是一些启动项目的指令,别复制了,会有问题的,
#反正就是把项目的启动指令放这了,比如java -jar 或者打war包,然后mv xxx.war 到tomcat里
proj_home=$PWD
img_output="demo" #更新依赖
mvn clean package -U docker build -t $img_output . docker rm -f demo docker run -d --restart=on-failure:5 --privileged=true \
-p 8080:8080 \
--name demo demo \
java \
-Duser.timezone=Asia/Shanghai \
-jar /home/demo.jar

好了,现在启动脚本有了,那么怎么让jenkins在知道有代码push时怎么执行这个脚本呢?
回到jenkins,我们需要装个ssh插件来远程登录服务器,运行脚本

系统管理----》插件管理

 
 
 
 

刷新一下,重启中,等待片刻

 
 

系统管理----》系统配置,如果插件安装成功的话,会多一个这个配置

 
 

保存
继续完成上一篇尚未完成的任务配置

 
 
 
 
 
 
 
 

保存,至此所有配置都已完成,可以点这里测试一下,是否能重启项目

 
 
 
 
 
 

如果这样能成功启动的话,可以试一下push代码看看是否能自动触发

jenkins部署github项目持续集成的更多相关文章

  1. Jenkins构建Android项目持续集成之findbugs的使用

    Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...

  2. Jenkins构建Android项目持续集成之单元测试及代码覆盖率

    单元测试 在软件开发中一直在推崇TDD(测试驱动开发),但是一直不能被有效的执行或者并不是真正的测试驱动开发(先开发后写单元测试),因为我们懒!而Android开发又是大多应用层面的开发,很多都是和视 ...

  3. Jenkins + testNg + maven 项目持续集成

    搞了一整天,梳理下关键点: 1.项目的pom.xml要配置插件,同时指定testng.xml文件的位置.就被这个卡了好久 <properties> <maven-surefire-p ...

  4. 构建基于Jenkins + Github的持续集成环境

    搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路.持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集 ...

  5. 利用Travis CI+GitHub实现持续集成和自动部署

    前言 如果你手动部署过项目,一定会深感持续集成的必要性,因为手动部署实在又繁琐又耗时,虽然部署流程基本固定,依然容易出错. 如果你很熟悉持续集成,一定会同意这样的观点:"使用它已经成为一种标 ...

  6. [Jenkins][GitHub]2 持续集成环境初探

    预计阅读时间:30分钟 部署环境:Jenkins ver. 2.61 + Centos7 + Java 1.8 参考链接: http://www.jianshu.com/p/22b7860b4e81 ...

  7. Jenkins +Maven+Tomcat+SVN +Apache项目持续集成构建

    详解Jenkins +Maven+Tomcat+SVN +Apache项目持续集成 一:前言 1. Jenkins jenkins版本大全http://mirrors.jenkins-ci.org/ ...

  8. Framework项目持续集成(jenkins)及集合SonarQube

    目录 Framework项目持续集成及集合SonarQube - 前言 CI/CD是什么 -- jenkins 什么是sonarqube?什么是CodeReview? 什么是sonarqube? 什么 ...

  9. 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

    背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...

随机推荐

  1. HDU 6121 Build a tree(k叉树的子树大小相异)

    http://acm.hdu.edu.cn/showproblem.php?pid=6121 题目大意: 给你一颗 n 个节点的完全 k 叉树,问你这棵树中所有子树结点个数的总异或值. 分析: 我们很 ...

  2. 圆周运动的css3特效案例

    <!doctype html><html lang="zh-cn"><head> <meta charset="UTF-8&qu ...

  3. python使用中遇到的一些问题

    一./usr/bin/ld:cannot find -lxxx错误 例如出现了问题: /usr/bin/ld:cannot find -lssl 其中xxx表示函式库文件名称,如上面的libssl.s ...

  4. 凉经-乐糖游戏-PHP开发实习生

    收到面试通知当天因为学校出事要求我明天必须回去,所以就买当晚的火车票,然后跟公司说学校有事明天没法去面试了,公司人事比较好给我安排到当天下午面试.公司规模不是很大,但位置好下了地铁到,可能因为招的是实 ...

  5. 云计算openstack核心组件——keystone身份认证服务

    一.Keystone介绍:       keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证.令牌的发放和校验.服务列表.用户 ...

  6. python判断字符串是否是json格式方法分享

    python判断字符串是否是json格式方法分享 在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例:   ...

  7. JS对象—字符串总结(创建、属性、方法)

    1.创建字符串     1.1 new String(s)         String和new一起使用,创建的是一个字符串对象,存放的是字符串s的表示.     1.2 String(s)     ...

  8. 【ABAP系列】SAP DOI技术中I_OI_SPREADSHEET接口的使用

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP DOI技术中I_OI_S ...

  9. < 利用Python进行数据分析 - 第2版 > 第五章 pandas入门 读书笔记

    <利用Python进行数据分析·第2版>第五章 pandas入门--基础对象.操作.规则 python引用.浅拷贝.深拷贝 / 视图.副本 视图=引用 副本=浅拷贝/深拷贝 浅拷贝/深拷贝 ...

  10. react 渲染顺序

    工作中要对一个表格做再次更新, 可能是渲染后更新或者部分组件渲染之后, 对页面效果做处理 之前对react的理解, 仅仅停留在render渲染. 这次好好理解了下react的生命周期 1 react组 ...