批量修改所有以 budget-dt- 开头的流水线任务的分支

import jenkins.model.*

import hudson.model.*

import hudson.plugins.git.*

import org.jenkinsci.plugins.workflow.job.WorkflowJob

import org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition

// 1. 设置匹配前缀和新分支

def jobPrefix = "budget-dt-"

def newBranch = "*/dt-test"

// 2. 遍历所有流水线 Job (WorkflowJob)

Jenkins.instance.getAllItems(WorkflowJob.class).each { job ->

// 检查名字是否以 budget-dt- 开头

if (job.name.startsWith(jobPrefix)) {

println "--- 正在处理: ${job.name} ---"

def definition = job.getDefinition()

// 确保它是从 Git/SCM 获取脚本的流水线

if (definition instanceof CpsScmFlowDefinition) {

def scm = definition.getScm()

if (scm instanceof GitSCM) {

// 构建包含新分支的 SCM 配置

def newScm = new GitSCM(

scm.getUserRemoteConfigs(),

new BranchSpec(newBranch),

scm.isDoGenerateSubmoduleConfigurations(),

scm.getSubmoduleCfg(),

scm.getBrowser(),

scm.getGitTool(),

scm.getExtensions()

)

// 将新配置应用回 Job 并保存

job.setDefinition(new CpsScmFlowDefinition(newScm, definition.getScriptPath()))

job.save()

println "✅ 已成功更新分支为: ${newBranch}"

} else {

println "⚠️ 跳过: 该流水线不使用 Git 源码管理。"

}

} else {

println "⚠️ 跳过: 该流水线不是通过 SCM 加载的(可能是直接写在界面上的脚本)。"

}

}

}

"批量修改执行完毕,请查看下方日志确认每个 Job 的结果。"

相关推荐
ji_shuke14 小时前
从零深入:基于 Playwright + Pytest + Allure 的企业级 Web 端到端自动化测试框架实战
前端·自动化测试·docker·jenkins·pytest·allure·playwright
上海安当技术19 小时前
老系统零改造接入:旁路代理统一认证实战
java·servlet·架构·kubernetes·jenkins
Mr. zhihao19 小时前
Jenkins 从节点连不上主节点?一次网络排查全记录 + 机器间通信“拦截层“全景讲解
网络·servlet·jenkins
砍材农夫2 天前
运维|devops|jenkins构建分支选择及执行日志展示
运维·jenkins·devops
阿标在干嘛2 天前
政策快报平台日志系统的3次演进:从文件到ELK到告警
运维·elk·jenkins
worilb3 天前
Spring Cloud 学习与实践(16):Elasticsearch 商品搜索、中文分词与索引一致性
运维·jenkins
BullSmall3 天前
Jenkins LTS JDK21 docker-compose.yml(生产可用)
运维·docker·jenkins
weixin_419658314 天前
Docker 搭建 Jenkins 服务
java·docker·jenkins
砍材农夫4 天前
运维|devops|jenkins构建应用发布
运维·jenkins·devops
BullSmall4 天前
Tomcat 部署 Jenkins → Docker Jenkins 完整迁移方案
docker·tomcat·jenkins