jenkins 设置 gitlab web hooks
背景
接口自动化期望代码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. 找了安全同事帮忙配置后,还是不通(怀疑人生了),思考可以通过什么方法快速验证网络还是不通过呢?于是尝试自己写一个简单接口验证;
jenkins 设置 gitlab web hooks的更多相关文章
- 如何创建一个GitLab Web Hooks?
Git Hooks Git 能在特定的重要动作发生时触发自定义的脚本. 这些脚本都被存储在 Git 目录下的 hooks 子目录中(.git/hooks).当 git init 初始化一个仓库时,Gi ...
- 自动化发布-GitLab WEB Hooks 配置
钩子(hooks) hooks是在特定事件发生之前或之后执行特定脚本代码功能(从概念上类比,就与监听事件.触发器之类的东西类似). Git hooks就是那些在Git执行特定事件(如commit.pu ...
- 【Devops】【docker】【CI/CD】Jenkins源码管理,设置gitlab上项目的clone地址 + jenkins构建报错:Please make sure you have the correct access rights and the repository exists.
注意,如果 jenkins构建报错:Please make sure you have the correct access rights and the repository exists. 而此时 ...
- Jenkins + Ansible + Gitlab之gitlab篇
前言 持续交付 版本控制器:Gitlab.GitHub 持续集成工具:jenkins 部署工具:ansible 课程安排 Gitlab搭建与流程使用 Ansible环境配置与Playbook编写规范 ...
- jenkins结合gitlab实现提交代码自动构建
jenkins可以说是现在非常流行的一个继续集成工具,几乎所有的公司都在用,并且它也基本是devops的连接者,是一个比较核心的工具. 主要记录以下两个: 利用jenkins和gitlab的webho ...
- Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署
一.环境需求 本帖针对的是Linux环境,Windows或其他系统也可借鉴.具体只讲述Jenkins配置以及整个流程的实现. 1.JDK(或JRE)及Java环境变量配置,我用的是JDK1.8.0_1 ...
- 使用jenkins SonarQube gitlab 构建自动化发布系统
目前持续集成的生态越来越完善,工具也有很多,开源的或商业的.如: 最最流行的,也是使用最多的 Jenkins 有着持续集成DNA的ThoughtWorks GO.理念:"Deployment ...
- Kubernetes+Jenkins+Nexus+Gitlab进行CI/CD集成
前面已经完成了 二进制部署Kubernetes集群,下面进行CI/CD集成. 一.流程说明 应用构建和发布流程说明: 1.用户向Gitlab提交代码,代码中必须包含Dockerfile: 2.将代码提 ...
- Jenkins+Ansible+Gitlab自动发布/回滚Spring项目
一.实现方法流程图 流程图如下:代码托管在本地GitLab上(为了复现整套流水线,我直接使用了GitHub,懒得再搭建GitLab),开发完成后提交代码到代码仓库,[自动]触发Jenkins进行持续集 ...
随机推荐
- 中国(北方)大学生程序设计训练赛(第二周) (A B D G)
比赛链接 A题是KMP,先把A拼接到B的后面,然后利用next数组的意义(包括其具体含义,以及失配时的应用),得到ans #include<bits/stdc++.h> using nam ...
- [luogu]P1352 没有上司的舞会[树形DP]
本Lowbee第一次写树形DP啊,弱...一个变量写错半天没看出来...... 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点 ...
- NLP —— 图模型(三)pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)模型
LSA(Latent semantic analysis,隐性语义分析).pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)和 LDA(Late ...
- .editorconfig
摘要 是什么 EditorConfig是一套用于统一代码格式的解决方案,可以帮助开发者在不同的编辑器和IDE之间定义和维护一致的代码风格. EditorConfig包含一个用于定义代码格式的文件和一批 ...
- Java以及PHP安装环境
开学前想把web的知识系统掌握一下,跟着极客学院学html5. 安装了intellij idead.xampp.jdk.eclipse for php. 下面列举一些安装过程中会出现的问题,以及解决. ...
- tar命令(转)
把常用的tar解压命令总结下,当作备忘: tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个, ...
- <EffectiveJava>读书笔记--01继承的使用注意
1, 父类的构造器方法中不能调用能够被子类重写的方法. 分析: 当初始化一个子类时, 首先要初始化父类, 即调用父类的构造方法; 如果父类的构造方法中调用了可被重写的其它方法, 那么此时调用的其实是该 ...
- Lettuce_webdriver 自动化测试
这篇文章主要讲解以下几点: 1. Lettuce_webdriver环境搭建 2. lettuce_webdriver自动化实例讲解 一. lettuce_webdriver环境搭建 搭建lettuc ...
- Java位操作
无论说是在哪一门计算机语言,位操作运算对于计算机来说肯定是最高效的,因为计算机的底层是按就是二进制,而位操作就是为了节省开销,加快程序的执行速度,以及真正的实现对数的二进制操作. 使用位操作 ...
- Head First 设计模式 第3章 装饰者模式
第3章 装饰者模式 1.定义/说明 动态.透明的将职责附加到对象上(或从对象上撤销),而不影响其他对象.若要扩展功能,装饰者模式提供了比继承更富有弹性的替代方案. 2.介绍 首先让我们先来介绍一下场景 ...