博客
关于我
Jenkins 自动触发执行的配置
阅读量:501 次
发布时间:2019-03-06

本文共 1852 字,大约阅读时间需要 6 分钟。

 

  

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 按钮,完成配置。

 

转载地址:http://ydbyz.baihongyu.com/

你可能感兴趣的文章
Mysql添加用户并授予只能查询权限
查看>>
mysql添加用户权限报1064 - You have an error in your SQL syntax问题解决
查看>>
mysql添加索引
查看>>
mysql添加表注释、字段注释、查看与修改注释
查看>>
mysql清理undo线程_MySQL后台线程的清理工作
查看>>
mysql清空带外键的表
查看>>
MySQL清空表数据
查看>>
mysql源码安装
查看>>
Mysql源码安装过程中可能碰到的问题
查看>>
MySQL灵魂16问,你能撑到第几问?
查看>>
MySQL灵魂拷问:36题带你面试通关
查看>>
mysql状态分析之show global status
查看>>
mysql状态查看 QPS/TPS/缓存命中率查看
查看>>
mysql生成树形数据_mysql 实现树形的遍历
查看>>
mysql用于检索的关键字_Mysql全文搜索match...against的用法
查看>>
MySQL用得好好的,为什么要转ES?
查看>>
MySql用户以及权限的管理。
查看>>
MySQL用户权限配置:精细控制和远程访问的艺术!------文章最后有惊喜哦。
查看>>
mysql用户管理、常用语句、数据分备份恢复
查看>>
MySQL留疑问:left join时选on还是where?
查看>>