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

相关推荐
qq_349447954 天前
Ubuntu26安装jenkins
jenkins
蓝天星空4 天前
Jenkins项目矩阵授权配置
jenkins
今年下半年5 天前
Jenkins阿里云服务器一键部署
jenkins
程序员杰哥6 天前
UI自动化测试:Jenkins配置
自动化测试·软件测试·python·测试工具·职场和发展·jenkins·测试用例
wangfenglei1234566 天前
jenkins搭建docker启动
jenkins
snow@li6 天前
服务器运维:K3S 下 Jenkins ↔ GitLab 的 CI/CD 闭环 / 访问成功
运维·gitlab·jenkins
qq_349447957 天前
Jenkins如何创建一个只能查看固定项目的账号
运维·jenkins
qq_349447957 天前
阿里云centos7.9系统安装jenkins
服务器·阿里云·jenkins
qq_349447959 天前
jenkin节点创建
jenkins
飞翔的熊blabla10 天前
# Webpack 5 + Jenkins 持久化缓存实战:前端构建从 288 秒降到 30 秒>
前端·webpack·jenkins