📖 Scenario: You are managing a Jenkins job that builds software projects. Over time, the workspace folder where Jenkins runs builds can fill up with old files. This can cause disk space issues and slow down builds.To keep the workspace clean, you want to add a step in your Jenkins pipeline to delete all files and folders in the workspace before starting a new build.
🎯 Goal: Build a Jenkins pipeline script that cleans the workspace folder at the start of the build using the deleteDir() command.
📋 What You'll Learn
Create a Jenkins pipeline script with a pipeline block
Add an agent any directive to run on any available agent
Add a stage named Cleanup Workspace
Inside the stage, use the steps block to call deleteDir() to clean the workspace
Print a message Workspace cleaned after cleanup
💡 Why This Matters
🌍 Real World
Cleaning the workspace before builds prevents leftover files from previous builds causing errors or using too much disk space.
💼 Career
Jenkins pipeline scripting is a key skill for DevOps engineers to automate build and deployment processes reliably.
Progress0 / 4 steps
1
Create the basic Jenkins pipeline structure
Create a Jenkins pipeline script with a pipeline block and an agent any directive.
Jenkins
Hint
The pipeline block is the root of the Jenkins pipeline script. The agent any means the job can run on any available Jenkins agent.
2
Add a stage named Cleanup Workspace
Add a stage named Cleanup Workspace inside the pipeline block with an empty steps block.
Jenkins
Hint
The stage groups steps in the pipeline. The steps block contains the commands to run.
3
Add the workspace cleanup command
Inside the steps block of the Cleanup Workspace stage, add the command deleteDir() to delete all files and folders in the workspace.
Jenkins
Hint
The deleteDir() command removes all files and folders in the current workspace directory.
4
Print a confirmation message after cleanup
After the deleteDir() command inside the steps block, add a echo command to print Workspace cleaned.
Jenkins
Hint
The echo command prints messages to the Jenkins console output.
Practice
(1/5)
1. What is the main purpose of workspace cleanup in Jenkins?
easy
A. To increase the number of concurrent builds
B. To remove old files and keep the build environment clean
C. To backup build artifacts automatically
D. To speed up the Jenkins server startup
Solution
Step 1: Understand workspace cleanup concept
Workspace cleanup removes files from previous builds to avoid clutter and errors.
Step 2: Identify the main benefit
Removing old files keeps the build environment clean and prevents conflicts or disk space issues.
Final Answer:
To remove old files and keep the build environment clean -> Option B
Quick Check:
Workspace cleanup = remove old files [OK]
Hint: Workspace cleanup deletes old build files to keep space free [OK]
Common Mistakes:
Thinking it speeds up Jenkins server startup
Confusing cleanup with backup
Assuming it increases build concurrency
2. Which of the following is the correct syntax to clean the workspace in a Jenkins Pipeline script?
easy
A. cleanWs()
B. cleanWorkspace()
C. deleteWorkspace()
D. removeWs()
Solution
Step 1: Recall Jenkins Pipeline workspace cleanup function
The correct function to clean workspace is cleanWs().
Step 2: Verify syntax correctness
Other options are not valid Jenkins Pipeline steps for workspace cleanup.
Final Answer:
cleanWs() -> Option A
Quick Check:
Jenkins workspace cleanup function = cleanWs() [OK]
Hint: Remember exact function name: cleanWs() [OK]
Common Mistakes:
Using incorrect function names like cleanWorkspace()
Adding parentheses incorrectly or missing them
Confusing with other cleanup commands
3. What will be the output or effect of this Jenkins Pipeline snippet?
A. Fails with a syntax error due to missing parameters
B. Prints the workspace contents without deleting anything
C. Archives the workspace files for later use
D. Deletes all files in the current workspace before the build
Solution
Step 1: Analyze the cleanWs() step in the pipeline
The cleanWs() step deletes all files in the current workspace.
Step 2: Understand the pipeline effect
Since it is in the 'Clean' stage, it removes workspace files before further build steps.
Final Answer:
Deletes all files in the current workspace before the build -> Option D
Quick Check:
cleanWs() deletes workspace files [OK]
Hint: cleanWs() deletes workspace files, no parameters needed [OK]
Common Mistakes:
Thinking cleanWs() only lists files
Assuming cleanWs() needs parameters
Confusing cleanWs() with archiving
4. You added cleanWs() in your Jenkins Pipeline, but the workspace is not cleaned. What is a likely cause?
medium
A. cleanWs() only cleans after the build, not before
B. cleanWs() requires additional parameters to work
C. The pipeline is running on a shared agent and workspace cleanup is disabled
D. The Jenkins server needs a restart to apply cleanWs()
Solution
Step 1: Understand workspace cleanup behavior on shared agents
On shared agents, workspace cleanup may be disabled or restricted to avoid deleting others' files.
Step 2: Check common misunderstandings about cleanWs()
cleanWs() works without parameters and cleans immediately; server restart is not needed.
Final Answer:
The pipeline is running on a shared agent and workspace cleanup is disabled -> Option C
Quick Check:
Shared agent restrictions block cleanWs() [OK]
Hint: Check agent type; shared agents may block cleanup [OK]
Common Mistakes:
Thinking cleanWs() needs parameters
Assuming cleanup only happens after build
Restarting Jenkins unnecessarily
5. You want to ensure your Jenkins Pipeline cleans the workspace only after a successful build to save disk space but keep files if the build fails. How can you achieve this?
hard
A. Use post { success { cleanWs() } } block in the pipeline
B. Call cleanWs() at the start of the pipeline
C. Add cleanWs() inside the always post block
D. Configure Jenkins global settings to clean workspace on failure
Solution
Step 1: Understand Jenkins post-build actions
The post block allows running steps based on build result, like success.
Step 2: Use conditional cleanup after successful build
Placing cleanWs() inside post { success { ... } } cleans workspace only if build succeeds.
Final Answer:
Use post { success { cleanWs() } } block in the pipeline -> Option A
Quick Check:
Post success block cleans workspace conditionally [OK]
Hint: Use post { success { cleanWs() } } to clean only on success [OK]
Common Mistakes:
Cleaning workspace at start loses files before build
Using always block cleans even on failure
Expecting global settings to handle conditional cleanup
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.