Jenkins - 触发器

news/2024/9/21 16:42:50/文章来源:https://www.cnblogs.com/anliven/p/18398042

触发方式

jenkins自带的job触发方式

Generic Webhook Trigger插件

在需要外界其他系统触发Jenkins任务的场景,通常使用Generic Webhook Trigger插件来配置 Jenkins 触发器
Generic Webhook Trigger 插件允许使用 Webhook将外部系统与 Jenkins 集成。
通过配置 Webhook,在特定事件发生时,外部系统可以触发Jenkins 构建。

插件安装完成后,在pipeline类型项目中可以看到Generic Webhook Trigger 选项

勾选后,会出现提示信息和参数填写框

示例-1 解析Request参数

配置请求URL中传递的参数

配置触发的token参数(Token值具有唯一性,避免同时出发其他配置相同的任务)

设置打印调试日志(用于调试和排错)

对应的pipeline内容

pipeline {agent {label 'master'}stages {stage('web-trigger') {steps {script {echo "${version}"echo "${username}"}}}}
}

curl命令模拟请求测试

curl "http://192.168.16.200:8080/generic-webhook-trigger/invoke?token=test-web-trigger&version=1.1.1&username=jenkins"

curl命令测试结果

$ curl "http://192.168.16.200:8080/generic-webhook-trigger/invoke?token=test-web-trigger&version=1.1.1&username=jenkins" | python -m json.tool% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100   254  100   254    0     0  45035      0 --:--:-- --:--:-- --:--:-- 50800
{"jobs": {"dev-demo2": {"regexpFilterExpression": "","triggered": true,"resolvedVariables": {"username": "jenkins","username_0": "jenkins","version": "1.1.1","version_0": "1.1.1"},"regexpFilterText": "","id": 58,"url": "queue/item/58/"}},"message": "Triggered jobs."
}

pipeline输出日志

Generic Cause
[Pipeline] Start of PipelineReceived:Contributing variables:username = jenkinsusername_0 = jenkinsversion = 1.1.1version_0 = 1.1.1[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/dev-demo
[Pipeline] {
[Pipeline] stage
[Pipeline] { (web-trigger)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
1.1.1
[Pipeline] echo
jenkins
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

示例-2 解析Header参数

在示例-1的基础上,配置Header参数

pipeline内容对应添加

echo "${header_name}"
echo "${header_id}"

curl命令模拟请求测试

$ curl --location --request GET "http://192.168.16.200:8080/generic-webhook-trigger/invoke?token=test-web-trigger&version=1.1.1&username=jenkins" --header 'header_name:admin' --header 'header_id:100' | python -m json.tool% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100   338  100   338    0     0  57395      0 --:--:-- --:--:-- --:--:-- 67600
{"jobs": {"dev-demo2": {"regexpFilterExpression": "","triggered": true,"resolvedVariables": {"header_id": "100","header_id_0": "100","header_name": "admin","header_name_0": "admin","username": "jenkins","username_0": "jenkins","version": "1.1.1","version_0": "1.1.1"},"regexpFilterText": "","id": 64,"url": "queue/item/64/"}},"message": "Triggered jobs."
}

pipeline日志输出

Generic Cause
[Pipeline] Start of PipelineReceived:Contributing variables:header_id = 100header_id_0 = 100header_name = adminheader_name_0 = adminusername = jenkinsusername_0 = jenkinsversion = 1.1.1version_0 = 1.1.1[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/dev-demo2
[Pipeline] {
[Pipeline] stage
[Pipeline] { (web-trigger)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
1.1.1
[Pipeline] echo
jenkins
[Pipeline] echo
admin
[Pipeline] echo
100
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

示例-3 解析Post参数

配置Post参数

  • Expression获取数据并赋值给Variable,
  • 变量名称可以自定义,Expression根据数据格式和内容编写

配置token

配置调试日志

pipeline内容

pipeline {agent {label 'master'}stages {stage('web-trigger') {steps {script {echo "${devopsName}"}}}}
}

curl命令模拟请求测试

$ curl --location --request POST "http://192.168.16.200:8080/generic-webhook-trigger/invoke?token=test-web-trigger-post" \
--header 'Content-Type: application/json' \
--data-raw "{'name':'admin','id':'100','group':{'name':'jenkins','id':'101'}}" | python -m json.tool% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100   260  100   195  100    65   2199    733 --:--:-- --:--:-- --:--:--  2954
{"jobs": {"dev-demo3": {"regexpFilterExpression": "","triggered": true,"resolvedVariables": {"devopsName": "jenkins"},"regexpFilterText": "","id": 72,"url": "queue/item/72/"}},"message": "Triggered jobs."
}

pipeline输出日志

Generic Cause
[Pipeline] Start of PipelineReceived:{'name':'admin','id':'100','group':{'name':'jenkins','id':'101'}}Contributing variables:devopsName = jenkins[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/dev-demo3
[Pipeline] { (hide)
[Pipeline] stage
[Pipeline] { (web-trigger)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
jenkins
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[场景设计]短网址服务

如何设计一个短网址服务(TinyURL)? 使用场景(Scenario) 微博和Twitter都有140字数的限制,如果分享一个长网址,很容易就超出限制,发不出去。短网址服务可以把一个长网址变成短网址,方便在社交网络上传播。 需求(Needs) 很显然,要尽可能的短。长度设计为多少才合适呢? 短网…

增强 softmax 函数的稳定性

概述 oftmax函数的表达式 $ \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} $,但在计算机的运算上有一定的缺陷。这个缺陷就是溢出问题。 softmax函数的实现中要进行指数函数的运算,但是此时指数函数的值很容易变得非常大。比如,e^{10} 的值会超过20000, e^{100…

Linux 系统的操作命令

Author: ACatSmiling Since: 2024-09-05文件与目录结构 Linux 系统中,一切皆文件。 Linux 目录结构:[zeloud@localhost ~]$ cd / [zeloud@localhost /]$ ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var/bin:存…

chatgpt生成的所有分析函数,感觉很好.

好的,我会列出Hive的主要分析函数,然后创建一个表并插入10条数据来演示这些函数的效果。 Hive的主要分析函数:ROW_NUMBER() RANK() DENSE_RANK() CUME_DIST() PERCENT_RANK() NTILE() LAG() LEAD() FIRST_VALUE() LAST_VALUE()现在,让我们创建一个表并插入数据:-- 创建表 …

大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):2.算法涉及理论知识概要大规模MIMO(Multiple-Input Multiple-Output)通信系统因其能够显著提高无线通信系统的容量和频谱效率而受到广泛关注。在这样的系统中,基站配备了大量的天线(通常数百个),而用户…

docker部署mysql8主从

一、拉取mysql镜像docker pull mysql 二、创建容器# 主库docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql# 从库 docker run -itd -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave mysql 三、配置主库[mysqld]## 同一…

IDGenRec论文阅读笔记

IDGenRec: LLM-RecSys Alignment with Textual ID Learning论文阅读笔记 Abstract ​ 为了使 LLM 与推荐需求更好地结合,我们提出了 IDGenRec,使用人类语言标记将每个项目表示为唯一、简洁、语义丰富、平台无关的文本 ID。这是通过与基于 LLM 的推荐器一起训练文本 ID 生成器…

基于鱼群算法的散热片形状优化matlab仿真

1.课题概述使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进行优化。从而得到最佳的孔隙度…

Transformer: Attention is all you need

Transformer于2017年提出,最开始应用于NLP领域,随着Transformer的快速发展,在视觉领域中也越来越多的论文或应用用到了Transformer,这里记录一下自己学习的一些知识点。 PDF: 《Attention Is All You Need》 Code: attention-is-all-you-need-pytorch 一、前置知识 1.1 注…

Falcon Mamba: 首个高效的无注意力机制 7B 模型

Falcon Mamba 是由阿布扎比的 Technology Innovation Institute (TII) 开发并基于 TII Falcon Mamba 7B License 1.0 的开放获取模型。该模型是开放获取的,所以任何人都可以在 Hugging Face 生态系统中 这里 使用它进行研究或应用。 在这篇博客中,我们将深入模型的设计决策、…

基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真

1.程序功能描述 奇异谱分析(Singular Spectrum Analysis,简称SSA)是一种强大的非线性和非参数时间序列分析方法。该方法基于奇异值分解(SVD)和轨迹矩阵的概念,用于提取时间序列中的趋势、周期性和噪声成分。在本课题中,通过SSA算法,从强干扰序列中提取其趋势线。…

英伟达硬解码错误汇总

1. 解码器报报CUDA_ERROR_NO_DEVICE驱动问题,确保驱动与CUDA版本兼容。CUDA是区分操作系统的。