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

相关推荐
zxd02031117 小时前
EFK(Elasticsearch + Fluentd + Kibana) 日志收集系统
运维·docker·jenkins
终端行者18 小时前
Jenkins Pipeline 企业级用法 参数化构建+Ansible发布---上
docker·ansible·jenkins·cicd
认真的薛薛21 小时前
Linux运维:Jenkins部署
linux·运维·jenkins
终端行者21 小时前
jenkins Pipeline 企业级别的流水线构建 Docker 负责打包 最后上传到Nexus
ci/cd·docker·jenkins
认真的薛薛1 天前
Linux运维:Jenkins+Argocd
linux·运维·jenkins
cgsthtm2 天前
openEuler release 24.03 (LTS-SP2) 安装 jenkins
jenkins·openeuler·firewall-cmd·jenkins.reps
IT界的老黄牛2 天前
Flink 重启变双开:一次部署引发的两个 CDC 任务并发消费
大数据·flink·jenkins
liyunlong-java4 天前
Elasticsearch 8.5.3 + IK 分词器 + Kibana 8.5.3 一键安装
大数据·elasticsearch·jenkins
Linux运维技术栈5 天前
Jenkins服务器更新密钥后任务构建不了?排查实录与解决方案
服务器·servlet·jenkins
醉颜凉5 天前
Elasticsearch 实战:数据自动化清理完全指南(ILM + 定时删除 + 最佳实践)
elasticsearch·自动化·jenkins