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

相关推荐
运维全栈笔记2 天前
零基础掌握Jenkins CI/CD:Java项目自动构建与部署全流程指南
git·servlet·ci/cd·gitee·自动化·jenkins·devops
Young soul22 天前
docker-compose安装elasticsearch、kibana、logstash以及ik分词器
elasticsearch·docker·jenkins
Young soul22 天前
Elasticsearch(v8.5) 常用操作大全
大数据·elasticsearch·jenkins
何中应3 天前
记录一次Jenkins构建任务的坑
java·servlet·jenkins
kaico20184 天前
Jenkins Master 停机与备份
运维·servlet·jenkins
陈皮糖..5 天前
27 届运维实习笔记|第三、四周:从流程熟练到故障排查,企业运维实战深化
运维·笔记·sql·nginx·ci/cd·云计算·jenkins
老友@5 天前
Jenkins 中 Node 版本异常排查:Alpine + musl 导致的兼容问题(lts-alpine-jdk17)
java·servlet·jenkins
弹简特5 天前
【精通JMeter接口测试】03-JMeter 接口测试持续集成踩坑记:jtl 转 Allure 报告、Jenkins 定时执行、CSP 样式劫持全解决
jmeter·自动化·jenkins
William Dawson5 天前
Jenkins 操作文档及使用方法(新手入门\+实战详解)
运维·jenkins