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

相关推荐
小白的码BUG之路3 天前
Jenkins -- 配置jdk和maven
java·jenkins·maven
9144062323 天前
安装jenkins遇到的问题总结
运维·jenkins
小白的码BUG之路3 天前
Jenkins -- 配置ssh
运维·ssh·jenkins
王琦03184 天前
jenkins使用手册
运维·jenkins
不老刘4 天前
Maven 多医院分支场景下 groupId 的设计与 Jenkins 落地实践
servlet·jenkins·maven
wangfenglei1234566 天前
jenkins权限配置
运维·jenkins
骑着蜗牛撵大象3276 天前
CentOS 7 单机拉起 Elasticsearch 7.17.29:从内核报错到公网可达的全链路记录
elasticsearch·centos·jenkins·restful·内核调优·公网部署
打工仔折腾 AI6 天前
CentOS 7 单机部署 Elasticsearch 7.17.29:启动报错排查与 CRUD 验证
人工智能·后端·python·elasticsearch·性能优化·centos·jenkins
西柚不烦恼6 天前
PyCharm 虚拟环境与 Jenkins 自动化部署实践
pycharm·自动化·jenkins
空空dream7 天前
04 | 用 Jenkins 打通 CI自动构建镜像并推送到本地 Harbor
运维·ci/cd·jenkins