1. 两种触发方式

2. jenkins 和 github 同步配置

1. 两种触发条件

Jenkins 中建立的任务是可以设置自动触发,更进一步的实现自动化。Jenkins 的触发条件可以分为两种:时间触发和事件触发。

1)时间触发

到了指定的时间就触发构建,默认的时间触发包括定时构建和轮询 SCM。

  • 定时构建:指的是一到指定的时间就自动执行,类似于 linux 下的 crontab,通常用在周期性构建的场景下,比如说半夜构建。
  • 轮询 SCM:每隔指定的时间询问代码库是否有变化,比如说 push、pull、update 等操作,操作类型是可以配置的,如果有的话就会自动执行任务。

2)事件触发

事件触发指的就是发生了某个事件就触发构建,事件可以是手动构建、上游任务的主动触发、HTTP API Webhook 等。

  • 由其他工程构建后触发:比如我们打包、部署完 war 包并发布到 tomcat 记做任务 A,测试脚本的任务记做任务 B,当我们想任务 A 构建成功后自动执行测试的话,就可以在任务 B 的 config 中将 A 作为 B 的触发工程。
  • GitHub hook trigger for GITScm polling:github 专用,当 github 上代码有变动时用来主动通知 Jenkins 进行项目的构建。该插件默认是没有的。
  • 触发远程构建(例如,使用脚本):会提供一个接口,可以用来在代码层面触发构建。

2. jenkins 和 github 同步配置

Ngrok 安装

GitHub 收到提交的代码后要主动通知 Jenkins,所以 Jenkins 所在服务器一定要有外网 IP,否则 GitHub 无法访问,解决方法:下载 ngrok,将 IP 暴露到网络(类似的工具还有 holer)。

1)下载

登录到 https://ngrok.com/download 下载 ngrok 压缩包,选 windows 版本:

2)解压缩

将 ngrok-stable-windows-amd64.zip 文件解压到指定的目录,比如:F:\ngrok-stable-windows-amd64

3)获取 ngrok 的 token

切换到官网并进行登录(可用 github 账号登录):

获取 token:

4)认证 token

切换到解压后的目录,执行命令进行认证:ngrok authtoken <your token>

5)启动 ngrok

在 ngrok 所在的目录执行:ngrok http 8080(8080 是 tomcat 的监听端口),拷贝 forwarding 指示的 ip,后续会用到(注意:cmd 的窗口不要关闭)。

注意:关机或重启后就要重新进入 ngrok 所在的目录执行 ngrok http 8080 命令生成新的 IP,同时 Jenkins 和 github 中的 webhook 对应的 ip 也要修改。

配置 webhook

在整个流程中关键的一步就是 github 监控到指定的仓库有 push 事件时,就会通知 Jenkins 启动与该仓库关联的任务自动构建,这就需要用到 webhook。

webhook 是一个 HTTP 回调,当有 push 事件发生时,github 可以发起一个 HTTP 请求到 webhook 配置的 URL 通知 Jenkins 发生了 push 事件,这样只要开发人员提交代码后,都会触发编译、打包、发布以及测试任务的构建。

需要在 GitHub 中配置 webhook,然后在 Jenkins 中添加此 webhook,流程如下:

1)登录到 github,进入到需要监控的仓库

点击 settings:

点击 Webhooks-->Add webhooks:

2)设置 Payload URL

填写 Jenkins 的服务所在 IP 地址 + Jenkins/github-webhook/,如:https://7f39f40b.ngrok.io/Jenkins/github-webhook/

标黄的部分是用 ngrok 生成的 IP 地址,其它值默认即可。

3)进入到 Jenkins,单击系统管理-->系统设置

找到 GitHub,单击 Advanced...

4)添加 webhook

注意:post 地址一定是 http://your_Jenkins_url/github-webhook/ ,不能去掉最后的“/”。

单击页面最底部的 save 按钮,完成配置。

Jenkins 自动触发执行的配置的更多相关文章

  1. Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布

    思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...

  2. odoo开发笔记:Server+Action服务器动作自动触发执行

           Odoo的市场定位是SME(中小型企业),这个市场的ERP产品,多如牛毛,产品各具特色.不过,Odoo的自动化处理机制,可以睥睨天下,无人能及.包括一些大型国产软件,如用友.金蝶也不具备 ...

  3. jenkins自动触发构建

    1. 安装jenkins cat /etc/yum.repos.d/jenkins.repo [jenkins] name=Jenkins baseurl=http://pkg.jenkins.io/ ...

  4. jenkins 自动触发

    在gitlab上配置连接jenkins ,将Jenkins的Secret token 与Build URL 复制到gitlab中 在settings标签下面,找到OutBound Request,勾选 ...

  5. 【06】Jenkins:Gitlab 自动触发构建以及钉钉通知

    写在前面的话 在某些时候,我们希望能够实现这样一个功能,当用户提交东西到 gitlab 上的时候,希望它能够自动触发构建,发布到我们需要的环境. 目前我们内部有做类似的需求:产品提交原型到 gitla ...

  6. gitlab+jenkins自动发布Python包到私有仓储

    背景 有个私有仓储,地址为https://your.repo.com/pypi/ 代码存储在gitlab, 地址为https://gitlab.company.com/software.git CI为 ...

  7. 六、配置github的pull request触发jenkins自动构建

    之前的配置,都是向master分支push操作触发jenkins进行构建,但是在一般的正常工作中,不会允许程序员直接向主分支推送代码:正常都是fork一个本地的分支,在本地分支调试完后,向主干分支提交 ...

  8. 配置github的pull request触发jenkins自动构建

    参照: https://www.cnblogs.com/zanjiahaoge666/p/6402738.html 之前的配置,都是向master分支push操作触发jenkins进行构建,但是在一般 ...

  9. 配置GitHub Push自动触发Jenkins的构建

    这里以gitbook的项目为例,GitHub中的gitbook项目部署在Jenkins中,执行git push命令时自动执行Jenkins构建,其他项目只是最后的执行脚本不同 环境准备 安装Jenki ...

随机推荐

  1. 后端程序员之路 47、Hadoop hdfs

    Hadoop的核心是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase.Hive等,这些都是基于HDFS和MapReduce发 ...

  2. 解决浏览器点击button出现边框问题

    发现问题 本人不懂浏览器的HTML代码 不知道怎么在chrome浏览器的F12之后点到了哪里 点击button的时候就会出现黑色边框 解决 终于发现不是因为动了调试页面,而是动了谷歌浏览器的高级选项, ...

  3. vivo 官网资源包适配多场景的应用

    本文介绍了资源包的概念及使用场景,同时对资源包的几种使用方案进行对比.通过本文,大家可以快速掌握资源包的使用方法,解决单一配置满足多场景.多样式的问题. 一.业务背景 随着官网项目的业务深入发展,单纯 ...

  4. IDEA SVN 使用

    转: IDEA SVN 使用 一.上传项目到 SVN VCS -> Import into Version Control -> Share Project(Subversion) 点击 ...

  5. MySql学习---数据库基本类型,事务,多表查询

    数据库分类 关系型数据库 行列, 列如Mysql,oracle 通过表和表之间,行和列之间的关系进行数据的存储 非关系型数据库: Redis,MongDb 以对象存储,同过对象的自身属性来决定 表与表 ...

  6. AI换脸

    AI换脸 技术 调用到百度的AI接口,layui的图片上传,栅格化布局 核心代码 纯py文件运行 # encoding:utf-8 import requests import base64 impo ...

  7. Java 学习阶段性感想

    阶段性感想·操千曲而后晓声 回顾 从2月17日 到 今天 4月19日,我算是暂时完成了Java入门的学习了. 从基本语法到面向对象,从常见API到字符串集合,从文件处理到多线程,我学到了很多,很多很多 ...

  8. Python装饰器(2)

    上一篇介绍了装饰器的常规使用方法,即函数形式的装饰器.这篇文章中,进一步介绍类class跟装饰器的相关知识. [用装饰器来装饰类函数] 这是今天介绍的第一种使用场景,比较常见.因为目前好多的编程语言都 ...

  9. P1996_约瑟夫问题(JAVA语言)_可能是最简单的解法了!

    思路:使用队列模拟. 判断是否为出圈的数.如果不是,把数加入队列尾部:如果是,输出并删除. 题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数 ...

  10. PTA 报数

    6-3 报数 (20 分)   报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号.从第一个人开始报数,报到m(<)的人退出圈子:下一个人从1开始报数,报到m的人退出圈子.如此下去,直到留 ...