Last active
January 17, 2025 06:44
-
-
Save ceilfors/1400fd590632db1f51ca to your computer and use it in GitHub Desktop.
When you delete jobs in Jenkins, the corresponding workspaces in the build slaves won't be deleted automatically. This Jenkins script will go to each slave and check if the jobs are already deleted in Jenkins master and delete the workspace.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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, "") | |
} |
Sorry I missed all previous comments. I haven't used Jenkins for a while. You can comment on the code that deletes the workspace and see what "println "Processing $node.displayName"" would print out before you proceed.
Hi @ceilfors
I did the same and I see it prints the slave node name. Anyways, I would read some Jenkins scripting docs to find out about the master.
Thank you again!
Hey from where do we run this script, and how to run. Im new to devops, plz help.
Or you can just type : https://jenkins.url.lan/script ( add script at the end of url )
You'll arrive in console script
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi @ceilfors
Thanks for sharing this.
If I am correct then it helps deleting the unused workspace from all the slave nodes, how about the master itself ?