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[*]};
do
        echo $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'`
    #执行job
    curl -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" ]];then
           echo "=================job:$variable构建完成,运行下一个 ==================="
         break       
         else [[ $job_result = "null" ]]
           echo "job_$variable构建中......"
         fi

     done
done
相关推荐
chaofan9802 分钟前
突破大模型落地瓶颈:Claude 4.7 与 GPT-5.5 长上下文工程实测
数据库·人工智能·python·gpt·自动化·php·api
qq_452396237 分钟前
第十四篇:《持续集成中的UI自动化:Jenkins/GitHub Actions集成》
ui·ci/cd·自动化
ai大模型中转api测评7 分钟前
构建生产级 AI 应用:GPT-5.5 与 Claude 4.7 的 Token 成本管理与工程化实战
大数据·人工智能·gpt·自动化
测试那点事儿34 分钟前
零基础接口自动化到 Jenkins 持续集成(导读)
ci/cd·自动化·jenkins
旦莫37 分钟前
AI生成测试用例:一个Prompt模板让AI从Excel模板生成自动化脚本
人工智能·python·测试开发·自动化·prompt·测试用例
zhensherlock1 小时前
Protocol Launcher 系列:Beorg 高效任务管理的协议支持
前端·javascript·typescript·node.js·自动化·github·js
deviant-ART1 小时前
HttpServletResponse 中 Header 与 OutputStream 的正确使用顺序(避坑指南)
java·后端·servlet
志栋智能3 小时前
运维超自动化:构建弹性IT架构的关键支撑
运维·服务器·网络·人工智能·架构·自动化
志栋智能11 小时前
超自动化安全:构建智能安全运营的核心引擎
大数据·运维·服务器·数据库·安全·自动化·产品运营
米高梅狮子13 小时前
08.CronJob和Service
云原生·容器·架构·kubernetes·自动化