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

相关推荐
风翼靓崽1 天前
jenkins搭建与简单使用
运维·jenkins
小白的码BUG之路1 天前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
RuoyiOffice4 天前
KubeSphere 容器云实践:从管理 K8s 到建设企业 PaaS,还需要哪些能力
spring boot·kubernetes·kubesphere·jenkins·paas·微服务部署·ruoyi office
@兽血沸腾6 天前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
拖累斯7 天前
Jenkins + Python 全自动跑通「禅道任务/BUG 导出 → 月度开发考核表」
python·jenkins·bug
逐流人7 天前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
修心光10 天前
记录一次,jenkins打包异常问题
运维·jenkins
后台模板学习10 天前
GitHub Actions 与 Jenkins 在日志监
运维·github·jenkins
X1A0RAN11 天前
Jenkins CI 流水线优化实践:基于提交指纹的任务缓存
缓存·ci/cd·jenkins
北风toto12 天前
Elasticsearch 8.2.3 快照迁移实战:从备份到恢复的完整指南
大数据·elasticsearch·jenkins