You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

筛选指定前缀Jenkins Job并更新节点标签的Groovy脚本问题求助

代码问题排查
  • 过滤逻辑错误:你使用each方法遍历任务,each仅执行遍历操作返回原完整集合,不会按照你写的前缀条件过滤结果。正确的过滤方法应该使用findAll,只保留名称匹配前缀的任务。
  • 变量名引用错误:for循环中定义的迭代变量是item,但赋值时误用了未定义的job变量,会直接抛出变量不存在的报错。
  • 属性名拼写错误:Jenkins任务设置节点标签的属性是assignedLabel(首字母L大写),你写的assignedlabel拼写错误,属性不存在会赋值失败。
  • 缺少类型校验:原逻辑没有过滤非任务类条目(比如文件夹、视图这类条目没有assignedLabel属性,直接赋值会报错)。
修正后的可用脚本
import hudson.model.*
import hudson.model.labels.*
import jenkins.model.*

// 配置前缀和目标标签
def targetPrefix = "Automation -"
def targetLabel = new LabelAtom('new-label-name')

// 过滤符合条件的任务
def buildableItems = Jenkins.instance.getAllItems(Job.class).findAll { job ->
    job.name.startsWith(targetPrefix)
}

// 批量更新标签
buildableItems.each { item ->
    println "正在更新任务:${item.fullName}"
    item.assignedLabel = targetLabel
    item.save()
}

println "批量更新完成,共处理${buildableItems.size()}个任务"

内容的提问来源于stack exchange,提问作者m yeliset

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:39:01