批量修改所有以 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 的结果。"

相关推荐
醉颜凉18 小时前
Elasticsearch高性能优化:Bulk API大规模数据导入性能调优全攻略
elasticsearch·性能优化·jenkins
sbjdhjd21 小时前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
小美元21 小时前
【爽之】使用jenkins实现前端一键发版
运维·jenkins
changxiang2 天前
Jenkins备忘
运维·jenkins
未若君雅裁4 天前
日志采集与ELK:从本地日志到集中检索分析
运维·elk·jenkins
Dontla4 天前
CI/CD前世今生(持续集成、持续交付、持续部署、Jenkins、Github Actions)
ci/cd·github·jenkins
Java 码思客4 天前
【ElasticSearch从入门到架构师】第7章-聚合查询——实现数据统计与分析
大数据·elasticsearch·jenkins
逻极5 天前
Jenkins 从入门到精通:CI/CD自动化流水线实战
ci/cd·自动化·jenkins·devops
炸炸鱼.5 天前
Git+Jenkins实战(一):从零搭建自动化发布与回滚系统(附完整代码)
git·jenkins
无人生还别怕5 天前
搭建jenkins服务并接入openldap认证
运维·jenkins