1 - Jenkins远程构建

可以通过以POST方式调用API来触发构建任务的执行
http://<IP>:<PORT>/job/<JOB NAME>/build?token=<TOKEN>&cause=<CAUSE>

1.1 - 创建用户token

Jenkins push后自动触发构建 jenkins tag触发_Jenkins push后自动触发构建


Jenkins push后自动触发构建 jenkins tag触发_Test_02

1.2 - 配置任务的触发器

在任务的“构建触发器”部分“触发远程构建 (例如,使用脚本)”添加令牌

Jenkins push后自动触发构建 jenkins tag触发_触发器_03


Jenkins push后自动触发构建 jenkins tag触发_Jenkins_04

1.3 - 远程触发构建

在浏览器中访问如下URL

http://192.168.16.200:8080/job/test/build?token=RemoteTesting&cause=testtrigger

浏览器不会有反应,但Jenkins后台将收到请求并开始构建

Jenkins push后自动触发构建 jenkins tag触发_Jenkins push后自动触发构建_05

1.4 - 查看任务执行情况

Jenkins push后自动触发构建 jenkins tag触发_Test_06

2 - GitLab触发构建

2.1 下载插件

当GitLab分支有代码提交或者合并请求时,通过Webhook配置可以自动触发执行对应的Jenkins任务。

需要在Jenkins上安装如下插件:https://plugins.jenkins.io/gitlab-plugin

Jenkins push后自动触发构建 jenkins tag触发_触发器_07

2.2 Jenkins安全配置

系统管理---》全局安全配置,取消“防止跨站点请求伪造”

Jenkins push后自动触发构建 jenkins tag触发_触发器_08

2.3 Jenkins任务配置

配置源码管理

分支为空,表示默认任何代码改动的分支都会拉取。

Jenkins push后自动触发构建 jenkins tag触发_触发器_09

配置“构建触发器”

注意:

  • GitLab webhook URL,要在GitLab中配置。
  • 点击Secret token部分的Generate按钮,生成令牌,这个令牌要在GitLab中配置。

2.4 GitLab项目配置

在project---》Settings---》Integrations---》配置Jenkins生成的GitLab webhook URL和Token,并指定触发条件。

Jenkins push后自动触发构建 jenkins tag触发_Jenkins push后自动触发构建_10

2.5 测试GitLab Webhook

在GitALab的项目添加webhook 成功后,可以通过提供的Test功能测试配置是否成功。

Jenkins push后自动触发构建 jenkins tag触发_Test_11

选择Test按钮下的操作类型

Jenkins push后自动触发构建 jenkins tag触发_Jenkins push后自动触发构建_12

如果配置成功,那么Test的结果会显示“Hook executed successfully: HTTP 200”

Jenkins push后自动触发构建 jenkins tag触发_Jenkins_13

Jenkins任务会被触发执行

Jenkins push后自动触发构建 jenkins tag触发_Jenkins push后自动触发构建_14


Jenkins push后自动触发构建 jenkins tag触发_Jenkins_15

3 - 其他工程构建后触发

Jenkins push后自动触发构建 jenkins tag触发_触发器_16

4 - 问题处理

GitLab通过webhook向Jenkins发送请求,报错“Requests to the local network are not allowed”

Jenkins push后自动触发构建 jenkins tag触发_Test_17

问题分析

Gitlab10.6 版本以后不允许向本地网络发送webhook请求,如果想向本地网络发送webhook请求,则需要使用管理员帐号登录做指定配置。

处理方法

Admin area---》Settings---》OutBound Request,勾选“Allow requests to the local network from hooks and services”---》保存更改。

Jenkins push后自动触发构建 jenkins tag触发_Test_18



行动是绝望的解药!

欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!

以所舍,求所得,有所获,方所成。