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

文章目录

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。

带参数的作业

例如 - 包含"字符串参数":

bash 复制代码
curl JENKINS_URL/job/JOB_NAME/buildWithParameters \
  --user USER:TOKEN \
  --data id=123 --data verbosity=high

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

bash 复制代码
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构建,且成功后钉钉通知

bash 复制代码
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 ]];then
            echo "http_status_code is"  $http_status_code
            exit 1
    else
            echo "service status ok\n"$http_content
            curl "${webhook}" -H 'Content-Type: application/json' -d "
    {
        \"msgtype\": \"markdown\",
        \"markdown\": {
                \"title\":\"Jenkins通知\",
                \"text\": \"#### 项目:${project}\n> 环境:${app_env}\n\n> 开始执行构建\n \n\"
     },
    }
相关推荐
皮皮虾❀2 天前
钉钉服务商私有化部署+混合云架构+信创适配一体化实战:从“公有云单点部署”到“核心本地+弹性云端”的灵活部署方案
架构·钉钉
paopao_djshddhdj2 天前
钉钉智能绩效:功能解析与收费模式
科技·钉钉
皮皮虾❀2 天前
钉钉服务商选型+系统集成能力+数据安全合规一体化实战:从“考勤数据孤岛”到“ERP/薪资系统自动同步全链路打通”
钉钉
皮皮虾❀2 天前
钉钉服务商私有化部署+专属APP定制+品牌自主一体化实战:从“用别人的平台”到“打造企业自有数字化办公入口”的完整路径
钉钉
SL-staff2 天前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术
皮皮虾❀3 天前
钉钉服务商定制开发实战:基于典铭云赛平台的技术架构与实现
钉钉
皮皮虾❀3 天前
钉钉服务商与ISV深度解析:区别、选择与高价值实践指南
钉钉
paopao_djshddhdj3 天前
钉钉项目管理功能详解与收费模式介绍
钉钉
lisanmengmeng3 天前
搭建elk环境并接入frostmourne,实现监控报警效果(一)
运维·elk·jenkins
皮皮虾❀4 天前
典铭云赛(FDE服务模式)开通钉钉AI功能全攻略:版本选择与配置指南
人工智能·钉钉