Skip to content

Instantly share code, notes, and snippets.

@jonyfs
Last active August 28, 2018 15:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonyfs/4d7e54aa068a0d73cbb37020639693ec to your computer and use it in GitHub Desktop.
Save jonyfs/4d7e54aa068a0d73cbb37020639693ec to your computer and use it in GitHub Desktop.
clean.slave.jenkins.workspaces.groovy
import com.cloudbees.hudson.plugins.folder.Folder
import hudson.FilePath
import jenkins.model.Jenkins
def boolean isFolder(String name) {
def item = Jenkins.instance.getItemByFullName(name)
return item instanceof Folder
}
def deleteUnusedWorkspace(FilePath root, String path) {
root.list().each { child ->
String fullName = path + child.name
if (isFolder(fullName)) {
deleteUnusedWorkspace(root.child(child.name), "$fullName/")
} else {
if (Jenkins.instance.getItemByFullName(fullName) == null) {
println "Deleting: $fullName "
child.deleteRecursive()
}
}
}
}
for (node in Jenkins.instance.nodes) {
println "Processing $node.displayName"
def workspaceRoot = node.rootPath.child("workspace");
deleteUnusedWorkspace(workspaceRoot, "")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment