jenkins构建 Webhook 触发器

目的是要让gitlab上面的项目更新了版本,Jenkins上面自动去执行新版本

项目地址

不用插件实现标签触发任务

Jenkins上面创建任务

这里面需要更改下

#网址


http://jenkins.wang.org:8080/job/webhook-demo/configure

生成个随机密码,测试用123456也可以
[root@rocky8 ginweb]#openssl rand -base64 21
WLB14/f1J2DJBFpMCGvKva12y/ax

JENKINS_URL/job/webhook-demo/build?token=TOKEN_NAME 或者 /buildWithParameters?token=TOKEN_NAME
Optionally append &cause=Cause+Text 需要替换TOKEN

两种格式都可以
http://jenkins.wang.org:8080/job/webhook-demo/build?token=WLB14/f1J2DJBFpMCGvKva12y/ax

http://jenkins.wang.org:8080/job/webhook-demo/buildWithParameters?token=WLB14/f1J2DJBFpMCGvKva12y/ax

网址需要注意格式

只添加了编译选项,为了测试

先在gitlab上面通过curl命令测试下,发现需要验证

响应码403,通常是用户身份验证失败

去Jenkins上面创建用户,系统配置-用户管理

创建用户,账号密码随意

可以看到添加用户后已经成功
[root@gitlab ~]#curl -u wang:123456 http://jenkins.wang.org:8080/job/webhook-demo/build?token=WLB14/f1J2DJBFpMCGvKva12y/ax -I
HTTP/1.1 201 Created
Date: Sun, 08 Sep 2024 09:03:07 GMT
X-Content-Type-Options: nosniff
Location: http://jenkins.wang.org:8080/queue/item/26/
Content-Length: 0
Server: Jetty(10.0.20)

jenkins上面切换用户生成Token—不切换生成不出来

这个有两种一个是项目token 另外一个是用户的token

gitlab上面测试令牌

[root@gitlab ~]#curl -u wang:117ef87ab2a7977f0a9d04a04c52bf9334 http://jenkins.wang.org:8080/job/webhook-demo/build?token=WLB14/f1J2DJBFpMCGvKva12y/ax -I
HTTP/1.1 201 Created
Date: Sun, 08 Sep 2024 09:15:50 GMT
X-Content-Type-Options: nosniff
Location: http://jenkins.wang.org:8080/queue/item/27/
Content-Length: 0
Server: Jetty(10.0.20)

[root@gitlab ~]#curl -u wang:117ef87ab2a7977f0a9d04a04c52bf9334 http://jenkins.wang.org:8080/job/webhook-demo/build?token=WLB14/f1J2DJBFpMCGvKva12y/ax

可以看到已经触发了操作,用密码去触发不安全,最好使用令牌方式Gitlab****配置 Webhook

打开外发请求,必须先打开

地址需要注意–ssl验证取消

http://wang:123456@jenkins.wang.org:8080/job/webhook-demo/build?token=WLB14/f1J2DJBFpMCGvKva12y/ax

测试出现错误403----新版不再支持 http不允许用账号密码

用新版方法
http://wang:117ef87ab2a7977f0a9d04a04c52bf9334@jenkins.wang.org:8080/job/webhook-demo/build?token=WLB14/f1J2DJBFpMCGvKva12y/ax

测试已经成功

找台机器开始试验

[root@rocky8 ~]#git clone git@gitlab.wang.org:devops/spring-boot-helloworld.git
Cloning into 'spring-boot-helloworld'...
remote: Enumerating objects: 128, done.
remote: Counting objects: 100% (48/48), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 128 (delta 26), reused 28 (delta 12), pack-reused 80 (from 1)
Receiving objects: 100% (128/128), 26.63 KiB | 13.31 MiB/s, done.
Resolving deltas: 100% (36/36), done.
[root@rocky8 ~]#ls
anaconda-ks.cfg  ginweb  ll  RuoYi  spring-boot-helloworld  wheel

[root@rocky8 spring-boot-helloworld]#vim README.md 

[root@rocky8 spring-boot-helloworld]#git commit -am "测试"
[main d56edc0] 测试
 1 file changed, 1 insertion(+), 1 deletion(-)
[root@rocky8 spring-boot-helloworld]#git tag v5.0 d56edc0
[root@rocky8 spring-boot-helloworld]#git tag
v0.1
v0.2
v0.3
v5.0
vceshi2.0
vceshi3.0
[root@rocky8 spring-boot-helloworld]#git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 2 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 280 bytes | 280.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
To gitlab.wang.org:devops/spring-boot-helloworld.git
   ebee160..d56edc0  main -> main
[root@rocky8 spring-boot-helloworld]#git push --tags 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To gitlab.wang.org:devops/spring-boot-helloworld.git
 * [new tag]         v5.0 -> v5.0
[root@rocky8 spring-boot-helloworld]#

已经实现了标签推送,然后触发操作


利用插件实现标签触发操作

系统管理 - 管理插件 - 可选插件 -Gitlab 和 Gitlab Hook 两个插件

触发条件取消,生成随机的token

e448c47e290cae9da94a342410b65624

URL: http://jenkins.wang.org:8080/project/webhook-demo

去gitlab上面设置标签推送规则,注意出站请求需要提前配置好

令牌填自动生成的token

测试已经成功

修改数据,推送标签,可以看到已经成功

[root@rocky8 spring-boot-helloworld]#vim README.md 
[root@rocky8 spring-boot-helloworld]#git commit -am "插件推送"
[main 93acd9e] 插件推送
 1 file changed, 1 insertion(+), 1 deletion(-)
[root@rocky8 spring-boot-helloworld]#git tag v4.0 93acd9e
[root@rocky8 spring-boot-helloworld]#git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 2 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 289 bytes | 289.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
To gitlab.wang.org:devops/spring-boot-helloworld.git
   d56edc0..93acd9e  main -> main
[root@rocky8 spring-boot-helloworld]#git push --tags 
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To gitlab.wang.org:devops/spring-boot-helloworld.git
 * [new tag]         v4.0 -> v4.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/937384.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iPhone苹果相册视频怎么提取音频?

在数字时代,视频已成为我们记录生活、分享故事的重要方式。然而,有时候我们只想保留视频中的音频部分,比如一段动人的背景音乐或是一段珍贵的对话。那么,苹果相册视频怎么提取音频呢?本文将介绍三种简单且实用的方法&a…

前端成长之路:CSS字体、文本属性和引入方式

本文主要介绍CSS的字体属性和文本属性,最后再介绍CSS在HTML中的引入方式。 CSS字体属性 CSS Fonts(字体)属性能用于定义字体系列属性,包括但不限于字体大小、粗细、字体样式等。 字体系列 在CSS中使用font-family属性定义文本…

PostgreSQL 常用运维SQL整理

一、查询并杀会话 -- 查询会话 select pid,usename,client_addr,client_port,query_start,query,wait_event from pg_stat_activity; -- 杀会话 select pg_terminate_backend(pid号); -- 使用如下命令自动生成杀会话语句 select datid,datname,pid,usesysid,usename,applicat…

item2 for macos

安装Item2 brew install iterm2 查看终端类型 cat /etc/shells Mac OS X 10.15 已经将默认的shell从Bash换成了zsh,所以不用安装,10.15以前的可以使用下面的命令进行安装 brew install zsh 安装Oh My ZSH # curl sh -c "$(curl -fsSL https://ra…

Python的3D可视化库【vedo】2-1 (plotter模块) 绘制器的使用

文章目录 1 相关用语及其关系2 Plotter类的基本使用3 Plotter类具体的初始化设置3.1 全部初始化参数3.2 使用不同的axes vedo是Python实现的一个用于辅助科学研究的3D可视化库。 vedo的plotter模块封装了绘制器类Plotter。 Plotter实例可以用于显示3D图形对象、控制渲染器行为、…

特征交叉-CAN学习笔记代码解读

一 核心模块coaction 对于每个特征对(feature_pairs)weight, bias 来自于P_inductionP_fead是MLP的input 举个例子:如果是用户ID和产品ID的co-action,且产品ID是做induction,用户ID是做feed。 step1 用户ID/产品ID都先形成一个向量&#xf…

【Java面试】深拷贝、浅拷贝和引用拷贝三者的区别

浅拷贝:浅拷贝会在堆上创建一个新的对象(区别于引用拷贝的一点),不过,如果原对象内部的属性是引用类型的话,浅拷贝会直接复制内部对象的引用地址,也就是说拷贝对象和原对象共用同一个内部对象。…

EasyGBS点对点穿透P2P远程访问技术在安防视频监控中的应用

随着信息技术的快速发展,安防视频监控系统在公共安全领域的应用变得越来越广泛。传统的视频监控系统多依赖于中心服务器进行视频流的集中处理和分发,这不仅增加了网络带宽的负担,还可能成为系统性能瓶颈。为了解决这些问题,P2P&am…

Vue入门到精通:核心语法—模板语法

Vue入门到精通:核心语法—模板语法 Vue.js因其简单、易用和高效的特点,自推出以来一直受到广泛关注。Vue.js的核心概念和技术包括模板语法、计算属性、事件监听、动态样式绑定、条件渲染指令(如v-if)、列表渲染指令(如…

C++中如何实现接口继承与实现继承,以及它们的区别?

概念 在 C 中,接口继承和实现继承是两种不同的继承方式,它们在设计模式、代码复用和多态性方面有着不同的应用。下面将分别解释这两者的概念、实现方式及其区别。 接口继承 接口继承指的是只继承类的接口(即公共的成员函数声明&#xff09…

WPF+MVVM案例实战与特效(三十八)- 封装一个自定义的数字滚动显示控件

文章目录 1、运行效果2、案例实现1、功能设计2、页面布局3、控件使用4、运行效果3、拓展:多数字自定义控件1、控件应用4、总结1、运行效果 在Windows Presentation Foundation (WPF)应用程序中,自定义控件允许开发者创建具有特定功能和外观的独特UI元素。本博客将介绍一个名…

2024年12月HarmonyOS应用开发者高级认证全新题库

注意事项:切记在考试之外的设备上打开题库进行搜索,防止切屏三次考试自动结束,题目是乱序,每次考试,选项的顺序都不同,作者已于2024年12月15日又更新了一波题库,题库正确率99%! 新版…

【Java学习笔记】JUnit

一、为什么需要 JUnit 二、基本介绍 三、实现方法 第一次添加: 在需要测试的方法处输入 Test注解,快捷键AltInsert选择添加版本(常用JUnit5.4) 出现绿色箭头可进行测试和编译

MySQL误删除 binlog 还原 恢复已删除数据 实战 超详细

硬盘有价,数据无价,数据库执行,谨慎操作! binlog日志还原不适用于直接删表删库的误操作! 目录 实战恢复 1、导出相关时间binlog数据 2、找到对应语句以及pos区间 3、导出改动区间的sql 4、将binlog导出的sql转换…

百度地图JavaScript API核心功能指引

百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用,包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。百度地图JavaScript API支持HTTP和HT…

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(五)

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(五) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…

C语言简单日志宏

最近调试C代码,发现要写很多打印的内容不是很方便,于是简单写一下C语言的日志来方便自己调试: 1. 简单打印带标识的日志信息 #include "stdio.h" #define PRINT(...) \do \{ …

【算法】—— 前缀和

一、区间求和问题 给定一个长度为n的序列a,有m次查询,每次查询输出一个连续区间的和。 使用暴力做法求解是将每次查询都遍历该区间求和 //暴力做法import java.util.Scanner;public class Test {public static void main(String[] args){Scanner scan…

详解下c语言下的多维数组和指针数组

在实际c语言编程中,三维及以上数组我们使用的很少,二维数组我们使用得较多。说到数组,又不得关联到指针,因为他们两者的联系太紧密了。今天我们就详细介绍下c语言下的多维数组(主要是介绍二维数组)和指针。 一、二维数组 1.1&am…

【实验】【H3CNE邓方鸣】交换机端口安全实验+2024.12.11

实验来源:邓方鸣交换机端口安全实验 软件下载: 华三虚拟实验室: 华三虚拟实验室下载 wireshark:wireshark SecureCRT v8.7 版本: CRT下载分享与破解 文章目录 dot1x 开启802.1X身份验证 开启802.1X身份验证,需要在系统视图和接口视…