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

groovy脚本统计jenkins_tag与构建机的映射关系

importjenkins.model.Jenkins// 获取 Jenkins 实例defjenkins=Jenkins.instance// 收集数据:标签 -> 构建机列表deflabelToNodes=[:]jenkins.nodes.each{node->defnodeName=node.name node.assignedLabels.each{label->deflabelName=label.toString()if(labelName==nodeName)return// 跳过节点自身的隐式标签if(!labelToNodes.containsKey(labelName)){labelToNodes[labelName]=[]}labelToNodes[labelName]<<nodeName}}// 按标签名排序defsortedLabels=labelToNodes.keySet().sort()// ============================================================// 第一部分:固定列宽表格(控制台查看)// ============================================================println"\n========== 标签与构建机对应关系(表格) =========="// 可调整的列宽(单位:字符数)intlabelWidth=25intnodesWidth=50intcountWidth=6deftotalWidth=labelWidth+nodesWidth+countWidth+7println"="*totalWidthprintf("| %-${labelWidth}s | %-${nodesWidth}s | %${countWidth}s |\n","标签","构建机列表","数量")println("-"*totalWidth)sortedLabels.each{label->defnodes=labelToNodes[label]defnodeStr=nodes.join(', ')// 截断过长内容(保留尾部 '...')if(nodeStr.length()>nodesWidth){nodeStr=nodeStr.substring(0,nodesWidth-3)+'...'}deflabelDisplay=labelif(labelDisplay.length()>labelWidth){labelDisplay=labelDisplay.substring(0,labelWidth-3)+'...'}printf("| %-${labelWidth}s | %-${nodesWidth}s | %${countWidth}d |\n",labelDisplay,nodeStr,nodes.size())}println("="*totalWidth)// ============================================================// 第二部分:CSV 格式(复制到 Excel 分列)// ============================================================println"\n========== 标签与构建机对应关系(CSV格式) =========="println"标签,构建机列表,数量"sortedLabels.each{label->defnodes=labelToNodes[label]// 将节点列表用逗号分隔,并用双引号包裹整个字段(避免特殊字符)defnodeList=nodes.join(', ')println"\"${label}\",\"${nodeList}\",${nodes.size()}"}println"\n统计完成,共找到${sortedLabels.size()}个标签。"
http://www.jsqmd.com/news/1167313/

相关文章:

  • 2026 年国内真人数字人制作平台TOP10:晟诺科讯达第一,企业选型正规参考 - SNKXD
  • 高质量MMD制作技术解析:从模型渲染到后期合成
  • 大数据量场景下sql查询中in查询项过多时很慢的其他解决方式
  • 2026 年 7 月山西工矿轴承采购合作企业:山西艾弗艾基进口设备贸易有限公司 - 信息热点
  • 积家官方服务项目及价格查询|热线电话与门店地址权威信息公告(2026年7月最新) - 积家官方售后服务中心
  • 2026汕头靠谱防水服务商:卫生间免砸砖、外墙、地下室、楼顶渗漏维修 本地正规报价(7月最新) - 吉林同城获客
  • 输送线厂家实地考察别白跑!过来人总结 8 个考察重点,避开 90% 采购大坑
  • 如何用Unlock Music终极解决音乐格式限制:3种快速免费的解密方法
  • 【Gemini Gmail集成实战指南】:20年谷歌生态专家亲授5大避坑要点与3步自动化部署法
  • 2026 旧房改造哪家真靠谱广州二手房翻新全攻略深度详解 - 优企甄选
  • 终极指南:如何让2007-2017年老旧Mac免费升级最新macOS系统
  • 2026年7月泰州姜堰区装备制造与文旅品牌优选5家SEO/GEO服务商综合测评|AI搜索品牌曝光与企业科学选型指南 - 招财兔数字员工
  • 卡地亚中国官方售后服务中心|地址与联系电话权威信息声明(2026年7月更新) - 卡地亚服务中心
  • 代码生成只是起点,企业 AI 落地的四大无解核心挑战
  • 3步自动化黑苹果安装:OpCore Simplify终极配置指南
  • 2026柳州靠谱防水服务商:卫生间免砸砖、外墙、地下室、楼顶渗漏维修 本地正规报价(7月最新) - 吉林同城获客
  • yuzu模拟器完整指南:在电脑上免费畅玩Switch游戏的终极方案
  • 【学习复盘】聊聊近期C语言进阶ICT VLAN互通学习心得(附代码)
  • Flint:专为AI设计的可视化中间语言,解决智能体图表生成难题
  • 2026潮州靠谱防水服务商:卫生间免砸砖、外墙、地下室、楼顶渗漏维修 本地正规报价(7月最新) - 吉林同城获客
  • 为什么极端条件下的中子星上电子依然安然无恙?
  • cann/cannbot-skills HIVM三元向量运算
  • 卡地亚中国官方售后服务中心|服务热线及具体地址权威信息公示(2026年7月最新) - 卡地亚官方售后中心
  • 2026安徽中考100-200分落榜?别乱择校,合肥省属公办建工院校正在招生 - 小张zc
  • (4-4-02)Bellman-Ford路径规划
  • 2026西安幼儿园除甲醛实用指南 服务明细与机构选择建议 - 西安治泉环保
  • g2o图优化库从源码编译安装:Ubuntu环境下的完整指南与问题排查
  • 盐城黄金换新服务实测:四家主流门店核心维度对比 - 招财兔数字员工
  • PlantCV性能优化:如何提升植物图像处理速度与精度
  • Mysql二进制日志binglog文件如何删除是否磁盘空间