jenkins 设置 gitlab web hooks

简介: 背景 接口自动化期望代码push后触发实现持续集成,代码push后,自动化执行jenkins的job。   步骤 准备工作 工具:jenkins,gitlab jenkins需要安装插件:git plugin,gitlab hook plugin , gitlab plugin(有的插件...

背景

接口自动化期望代码push后触发实现持续集成,代码push后,自动化执行jenkins的job。

 

步骤

准备工作

工具:jenkins,gitlab

jenkins需要安装插件:git plugin,gitlab hook plugin , gitlab plugin(有的插件是自带的,缺什么安装什么)

gitlab:确保有web hook权限,这个跟公司的gitlab有关,入口settings下的web hooks如下:

 

 确保gitlab跟jenkins的连通性

hook的大概原理其实很简单:设置了web hooks后,当git项目触发了event后会往你填写的hooks URL发送一个post请求

那么首先要确保gitlab跟jenkins服务器的连通性

我这边是在jenkins服务器通过flask框架写了一个测试的接口:

from flask import Flask,request
app= Flask(__name__)

@app.route("/test",methods=['GET', 'POST'])
def hello():
#       return "Hello World!"
        print(request.data);
        return request.data

if __name__ == "__main__":
        app.run(host='0.0.0.0',debug=True,port=8080)

那么通过POST请求访问http://your-jenkins-server-ip:8080/test会返回你request的body数据

设置web hooks的URL为http://your-jenkins-server-ip:8080/test后保存,

点击“TEST HOOK”测试这个hook是否生效,正常的话,页面提示200

 

设置jenkins

源码管理设置

 

 构建触发器设置,这个URL是gitlab web hook那里需要填写的URL

设置完毕后,点击保存

 

设置gitlab的web hook

URL填写jenkins上的那个URL,这里的就是上图的http://your-jenkins-server-ip:port/project/smart

 

测试是否生效

在gitlab上对代码进行update,然后commit;

去到jenkins查看job是否被执行:

 

 

 小结

1. 需要弄清楚原理,是gitlab访问设置的hook URL;

2. 当设置jenkins和gitlab都设置的没问题,但TEST HOOK就是不通过的时候,需要思考为什么有这种情况?于是怀疑是公司gitlab和自己搭建的jenkins网络不通;

3. 找了安全同事帮忙配置后,还是不通(怀疑人生了),思考可以通过什么方法快速验证网络还是不通过呢?于是尝试自己写一个简单接口验证;

 

虽千万人,吾往矣!
目录
相关文章
|
4月前
|
编解码 前端开发 JavaScript
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
119 2
|
4月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
125 0
|
4月前
|
JavaScript 测试技术 持续交付
使用 GitLab CI/CD 管道自动化部署 Web 应用
【10月更文挑战第2天】使用 GitLab CI/CD 管道自动化部署 Web 应用
188 0
|
4月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
324 0
|
6月前
|
数据可视化 jenkins 测试技术
GitLab CI/CD 和 Jenkins对比
8月更文挑战第25天
635 5
|
5月前
|
Shell
8-11|Running with gitlab-runner 16.2.1 (674e0e29) on csjs2-sg-cdn-web Ku48KQnJ, system ID: s_daf35
8-11|Running with gitlab-runner 16.2.1 (674e0e29) on csjs2-sg-cdn-web Ku48KQnJ, system ID: s_daf35
|
6月前
|
jenkins 持续交付 开发工具
"引爆效率革命!Docker+Jenkins+GIT+Tomcat:解锁持续集成魔法,一键部署Java Web应用的梦幻之旅!"
【8月更文挑战第9天】随着软件开发复杂度的增加,自动化变得至关重要。本文通过实例展示如何结合Docker、Jenkins、Git与Tomcat建立高效的持续集成(CI)流程。Docker确保应用环境一致性;Jenkins自动化处理构建、测试和部署;Git管理源代码版本;Tomcat部署Web应用。在Jenkins中配置Git插件并设置项目,集成Docker构建Tomcat应用镜像并运行容器。此外,通过自动化测试、代码质量检查、环境隔离和日志监控确保CI流程顺畅,从而显著提高开发效率和软件质量。
108 3
|
6月前
CI/CD笔记.Gitlab系列:设置GitLab导入源
CI/CD笔记.Gitlab系列:设置GitLab导入源
332 2
|
6月前
|
jenkins Devops Java
jenkins学习笔记之十:配置Gitlab提交流水线
jenkins学习笔记之十:配置Gitlab提交流水线
|
6月前
|
安全 jenkins 持续交付
jenkins学习笔记之八:jenkins认证集成gitlab
jenkins学习笔记之八:jenkins认证集成gitlab

热门文章

最新文章