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

正向代理

反向代理

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

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. OpenCV笔记:pyrDown()函数和pryUp()函数的使用

    OpenCV实现了用于创建图像金字塔的两个函数pyrDown()和pryUp(). 图像金字塔是一种经典的图像多尺寸描述方法,它将降采样和平滑滤波结合在一起,对图像进行多尺度表示.图像金字塔由不同尺寸 ...

  2. 修改mac下homebrew的源 加快下载速度

    把源改为清华的镜像 # HOMEBREW_BOTTLE_DOMAIN就是目标源 修改这个路径就可以里 echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirro ...

  3. P2158仪仗队

    今天早上你谷崩了 由于脑子抽筋,所以选了一道数学题来做.做着做着就疯了 传送 窝盟先画张图冷静冷静 这是样例的图,其中蓝点是有学生的地方. 窝盟来看一下那些学生可以被C君看到. 假设这张图是一个坐标系 ...

  4. Mac下用命令行压缩和解压rar文件的方法

    废话不多说,直接进入主题 第一步:下载RAR工具包,根据自己需要下载相对应的版本 第二步:解压对应的压在的压缩包rarosx-5.4.0.tar.gz(我下载的是5.4.0版本) 第三步:从终端进入到 ...

  5. SQL element_at函数

    库里有类似josn形式的字符串数据attr{"a":"123","b":"234"."c":&quo ...

  6. Java的常用类 String

    String类: 代表字符串, java程序中的所有字符串字面值(如, "abc")都是此类的实例实现 String是一个final类,代表不可变的字符序列 字符串是常量是用双引号 ...

  7. PyTestReport使用

    PyTestReport详细介绍: https://testerhome.com/opensource_projects/78 示例代码 #coding:utf-8 import os,unittes ...

  8. ElasticSearch删除索引

    curl -X DELETE http://{ES IP address}:9200/{index_name}

  9. Effect Hook

    1 数据获取,设置订阅以及手动更改 React 组件中的 DOM 都属于副作用. 2 可以把 useEffect Hook 看做 componentDidMount,componentDidUpdat ...

  10. CET-6 分频周计划生词筛选(Week 3)

    点我阅读 Week 3 2016.09.11 p113 manipulate + propel p114 expedition + deficit p115 all p116 envisage p11 ...