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

Jenkins自动化打包脚本

一、背景

jenkins可以设置定时任务打包,也已手动点按钮打包,还可以通过执行http请求打包,今天我们就通过shell脚本,通过curl命令进行jenkins打包。

二、步骤

2.1 在jenkins上构建项目

在这里插入图片描述
在这里插入图片描述
设置触发器
在这里插入图片描述

2.2 通过shell脚本触发远程构建

#使用列表for循环所要运行的job名
jobs=(TdPluginAlarmManage报警管理插件4.4 TdPluginCaseManager案件管理插件4.4 TdPluginBaqWorkbench工作台管理插件4.4 \
TdPluginBelongingsManage涉案财务模块插件前台4.4 TdPluginCaseFileManage案卷管理模块插件前台4.4 TdPluginCaseTerminalZL \
TdPluginLogin法制登录插件4.4 TdPluginStatisticalManage统计管理插件4.4 TdPluginSystemSetting系统设置插件4.4 \
TdPluginWorkbench工作台管理插件4.4 TdPluginZhfzPublicTools公共插件4.4 TdZTPluginCabinetInquest前台4.4 \
TdZTPluginRoomManage房间管理插件后台4.4 微服务1TdAjjzServer4.4 微服务2TdSacwServer4.4 \
微服务3TdAGWGCommonServer4.4 微服务4TdAgWgRunServer4.4);
echo "打包个数:${#jobs[*]}"
echo "打包清单------------"
for item in ${jobs[*]};
doecho $item;
done
for variable in ${jobs[*]};
# 或者
# for variable in  job1 job2 job3
do#获取下一次构建编号job_number=`curl --silent http://ip:port/job/$variable/api/json --user account:password |jq --raw-output '.nextBuildNumber'`#执行jobcurl -n -X POST http://ip:port/job/$variable/buildWithParameters --user --user account:password --data cp_branch='git分支'#查询job状态最多循环执行5次                for i in `seq 1 5` do#查询间隔时间,60s,启动下一个job最长间隔5分钟sleep 60#获取当前job运行结果##job_result=$(curl --silent http://ip:port/job/$variable/lastBuild/api/json --user account:password |jq --raw-output '.result')job_result=`curl --silent http://ip:port/job/$variable/$job_number/api/json --user account:password |jq --raw-output '.result'`echo "=================第$i次检测当前job名:${variable},job编号:$job_number,job运行状态: $job_result ====================================="if [[ $job_result = "SUCCESS" ]];thenecho "=================job:$variable构建完成,运行下一个 ==================="break       else [[ $job_result = "null" ]]echo "job_$variable构建中......"fidone
done
http://www.lryc.cn/news/118292.html

相关文章:

  • 一百五十、Kettle——Kettle官网下载地址
  • 使用 Visual Studio Code 调试 CMake 脚本
  • 【云原生】Docker 详解(二):Docker 架构及工作原理
  • 微服务 云原生:基于 Gogs + Drone 实现 CI/CD 自动化
  • ADO.NET之SQL Server
  • Nginx负载均衡(重点)
  • 第一章 SpringBoot入门
  • JavaScript Es6_2笔记 (深入对象 + 内置构造函数 + 包装类型)+包含实例方法
  • 尼科彻斯定理
  • 主数据管理案例-中国外运
  • 改进DevSecOps框架的 5 大关键技术
  • uni-app之app上传pdf类型文件
  • bash: sudo: command not found的解决方法 | 安装sudo
  • 电脑合上盖子无线网络不会断开
  • 【从零开始学习JAVA | 第四十篇】了解线程池
  • axios如何取消请求,其原理是什么?
  • 消息中间件 Asio (C++)
  • 3.4 网络安全管理设备
  • 前端高级面试题-JS
  • AcWing 1564:哈希 ← 只具有正增量的二次探测法
  • 什么是媒体代发布?媒体代发布注意事项
  • docker版jxTMS使用指南:使用jxTMS采集数据之二
  • 系列六、Springboot操作RocketMQ
  • 【jupyter异常错误】Kernel started:No module named ipykernel_launcher
  • 使用langchain与你自己的数据对话(五):聊天机器人
  • 爬虫与搜索引擎优化:通过Python爬虫提升网站搜索排名
  • 2024软考系统架构设计师论文写作要点
  • 【Maven】依赖范围、依赖传递、依赖排除、依赖原则、依赖继承
  • 数组slice、splice字符串substr、split
  • 程序漏洞:安全威胁的隐患