当前位置: 首页 > news >正文

【Jenkins】调用API构建并钉钉通知

文章目录

  • Jenkins API介绍
  • 提交作业
    • 带参数的作业
    • API 令牌
  • Shell调用代码

Jenkins API介绍

Jenkins 提供了远程访问 API。目前它有三种格式:

  1. XML

  2. JSON

  3. Python

远程访问 API 形式为"…/api/"
例如, Jenkins 安装位于https://ci.jenkins.io,则访问https://ci.jenkins.io/api/将仅显示可用的顶级 API 功能 – 主要是Jenkins 实例的已配置作业的列表 。

Jenkins API 可用于执行以下操作:

  1. 从 Jenkins 检索信息以进行编程使用。

  2. 触发新的构建

  3. 创建/复制作业

提交作业

不带参数的作业
只需要执行 HTTP POST JENKINS_URL/job/JOBNAME/build。

带参数的作业

例如 - 包含“字符串参数”:

curl JENKINS_URL/job/JOB_NAME/buildWithParameters \--user USER:TOKEN \--data id=123 --data verbosity=high

另一个包含“文件参数”的例子 - :

curl JENKINS_URL/job/JOB_NAME/buildWithParameters \--user USER:PASSWORD \--form FILE_LOCATION_AS_SET_IN_JENKINS=@PATH_TO_FILE

在此示例中,符号“@”很重要。另外,文件的路径是绝对路径。为了使此命令起作用,您需要将 Jenkins 作业配置为采用文件参数,并将Jenkins 作业配置中的文件位置–form字段与选项中的键相匹配。

API 令牌

早期版本的 Jenkins 要求指定真实密码,目前版本不建议这样做,因为存在泄露密码的风险,建议使用API 令牌

API 令牌可在个人配置页面中找到。在每个页面的右上角单击您的姓名,然后单击“配置”以查看您的 API 令牌。
在这里插入图片描述

Shell调用代码

实现调用API构建,且成功后钉钉通知

webhook=https://xxx.dingding.com
project=test-app
app_env=test
jenkins_url=http://xxxx.com/job/${project}/buildWithParameters?type=${app_env}
http_status_code=`curl -o /dev/null -s -w %{http_code} -X POST ${jenkins_url} --user xxxx:xxxxx`
if [[ $http_status_code -eq 000 ]] || [[ $http_status_code -ge 304 ]];thenecho "http_status_code is"  $http_status_codeexit 1elseecho "service status ok\n"$http_contentcurl "${webhook}" -H 'Content-Type: application/json' -d "{\"msgtype\": \"markdown\",\"markdown\": {\"title\":\"Jenkins通知\",\"text\": \"#### 项目:${project}\n> 环境:${app_env}\n\n> 开始执行构建\n \n\"},}
http://www.lryc.cn/news/193226.html

相关文章:

  • Java NIO三大核心组件
  • js数据排序方法(sort)?
  • 若依框架学习笔记_mybatis
  • 虚拟机的发展史:从分时系统到容器化
  • 季涨约3~8%,DRAM合约价大幅回升 | 百能云芯
  • LocalDate的用法
  • React通过ref获取子组件的数据和方法
  • Enhancing Self-Consistency and Performance of Pre-Trained Language Model
  • 安防监控视频汇聚平台EasyCVR视频广场搜索异常,报错“通道未开启”的问题排查与解决
  • css 星星闪烁加载框
  • 代码随想录算法训练营第二十二天丨 二叉树part09
  • Apipost连接数据库详解
  • 让 Visual Studio 用上 ChatGPT
  • 如何删除错误堆栈里的数据
  • k8s使用minio分布式集群作为存储--基础配置篇
  • @Autowired 到底是怎么把变量注入进来的?
  • 【Python学习笔记】函数
  • 简单实现一个todoList(上移、下移、置顶、置底)
  • 计算机视觉:池化层的作用是什么?
  • luffy项目前端创建、配置、解决跨域问题、后端数据库迁移
  • 电商数据API接口:新服务下电商网站、跨境电商独立站,移动APP的新型拉新武器
  • 多线程并发篇---第十一篇
  • JVM第六讲:JVM 基础 - Java 内存模型引入
  • 机房安全管理制度
  • 【自然语言处理】— 隐马尔可夫模型详解、例解
  • 运行的 akrun 会打印信息到控制台,如何取消打印 -- chatGPT
  • 【React】03-React面向组件编程2
  • 【python编程】python无法import模块的一种原因分析
  • vue3.0与vue2.0的区别
  • 09_Webpack打包工具