清理无效工作空间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import jenkins.model.Jenkins
import hudson.model.*
import hudson.slaves.*

def jenkins = Jenkins.instance

// 获取所有节点
def nodes = jenkins.nodes
nodes.add(jenkins) // 包括主节点

nodes.each { node ->
def workspaceRoot = node.getRootPath().child("workspace")
if (workspaceRoot.exists()) {
workspaceRoot.listDirectories().each { dir ->
// 检查目录是否有效
def jobName = dir.getName()
def job = jenkins.getItemByFullName(jobName)
if (job == null) {
// 如果没有找到对应的作业,删除目录
println "Deleting invalid workspace: ${dir.getRemote()}"
dir.deleteRecursive()
}
}
}
}