Build timeouts prevent builds from running forever, which can block other jobs and waste server resources. They help keep the CI/CD system healthy and responsive.
Click to reveal answer
beginner
What happens when a Jenkins build times out?
When a build times out, Jenkins stops the build and marks it as failed or aborted. This lets you know the build did not finish in time.
Click to reveal answer
intermediate
Can you customize the timeout behavior in Jenkins?
Yes, Jenkins allows you to customize timeout behavior, such as setting different time limits, choosing to fail or abort the build, and adding messages or cleanup steps.
Click to reveal answer
What is the main purpose of setting a build timeout in Jenkins?
ATo increase the build timeout automatically
BTo speed up the build process
CTo restart builds after failure
DTo stop builds that run too long and save resources
✗ Incorrect
Build timeouts stop builds that run longer than expected, preventing resource waste.
Which Jenkins Pipeline step is used to set a build timeout?
Await
Btimeout
Csleep
Ddelay
✗ Incorrect
The timeout step sets a time limit for the build block.
What happens if a Jenkins build exceeds the timeout limit?
AThe build is stopped and marked failed or aborted
BThe build continues running
CThe build restarts automatically
DThe timeout is ignored
✗ Incorrect
Jenkins stops the build and marks it as failed or aborted when timeout is reached.
How do you specify the time unit in a Jenkins timeout step?
AUsing the 'duration' parameter like 'HOURS'
BUsing the 'timeUnit' parameter like 'SECONDS'
CUsing the 'unit' parameter like 'MINUTES'
DUsing the 'interval' parameter like 'DAYS'
✗ Incorrect
The 'unit' parameter defines the time unit, for example 'MINUTES' or 'SECONDS'.
Can build timeouts be set differently for each Jenkins job?
AYes, each job can have its own timeout settings
BNo, timeout is global for all jobs
CTimeouts are only set at the Jenkins system level
DTimeouts cannot be customized
✗ Incorrect
Each Jenkins job or pipeline can have its own timeout configuration.
Explain what a build timeout is in Jenkins and why it is useful.
Think about what happens if a build never stops.
You got /4 concepts.
Describe how to set a build timeout in a Jenkins Pipeline script with an example.
Look for a block that limits build time.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of using timeout in a Jenkins build step?
easy
A. To log the build step output for debugging
B. To increase the build step execution time automatically
C. To restart the build step if it fails
D. To limit how long a build step runs to avoid stuck builds
Solution
Step 1: Understand the role of timeout in Jenkins
The timeout directive is used to set a maximum time limit for a build step to run.
Step 2: Identify the benefit of limiting build step time
Limiting time prevents builds from hanging indefinitely and wasting resources.
Final Answer:
To limit how long a build step runs to avoid stuck builds -> Option D
Quick Check:
Timeout limits build step time = A [OK]
Hint: Timeout stops long builds to save resources [OK]
Common Mistakes:
Thinking timeout extends build time
Confusing timeout with retry logic
Assuming timeout logs output automatically
2. Which of the following is the correct syntax to set a timeout of 10 minutes in a Jenkins pipeline?
easy
A. timeout(time: 10, unit: 'MINUTES') { /* steps */ }
B. timeout(10 minutes) { /* steps */ }
C. timeout { time: 10, unit: 'MINUTES' }
D. timeout(time=10, unit='minutes') { /* steps */ }
Solution
Step 1: Recall Jenkins timeout syntax
The correct syntax uses named parameters: timeout(time: 10, unit: 'MINUTES').
Step 2: Check each option for syntax correctness
timeout(time: 10, unit: 'MINUTES') { /* steps */ } matches the correct syntax. The other options have syntax errors or wrong parameter formats.
Hint: Use named params with colon and quotes for timeout [OK]
Common Mistakes:
Using parentheses without named params
Wrong parameter separators like = instead of :
Missing quotes around unit string
3. Given this Jenkins pipeline snippet:
timeout(time: 1, unit: 'MINUTES') {
sh 'sleep 90'
}
What will happen when this pipeline runs?
medium
A. The build step will complete successfully after 90 seconds
B. The build step will timeout and be aborted after 1 minute
C. The build step will ignore the timeout and run for 90 seconds
D. The build will fail immediately due to syntax error
Solution
Step 1: Analyze the timeout and sleep duration
The timeout is set to 1 minute, but the shell command sleeps for 90 seconds (1.5 minutes).
Step 2: Understand timeout behavior
Since the sleep exceeds the timeout, Jenkins will abort the build step after 1 minute.
Final Answer:
The build step will timeout and be aborted after 1 minute -> Option B
Quick Check:
Sleep > timeout causes abort = D [OK]
Hint: If step runs longer than timeout, Jenkins aborts it [OK]
Common Mistakes:
Assuming step completes despite timeout
Confusing timeout unit or value
Thinking syntax error occurs here
4. You added a timeout to your Jenkins pipeline but it does not abort the build when expected. Which is the most likely cause?
medium
A. The timeout unit is misspelled or invalid
B. The timeout block is placed outside the pipeline script
C. The timeout value is set longer than the step duration
D. The Jenkins server is offline
Solution
Step 1: Check timeout configuration
The most likely cause is that the timeout value is set longer than the actual step duration, so no timeout occurs even if expected.
Step 2: Evaluate other options
Timeout block outside pipeline or invalid unit would cause syntax errors preventing execution. Server offline prevents builds from running.
Final Answer:
The timeout value is set longer than the step duration -> Option C
Quick Check:
Timeout value longer than step = A [OK]
Hint: Verify timeout value vs step duration if no abort [OK]
Common Mistakes:
Placing timeout outside pipeline block
Setting timeout longer than step time expecting abort
Ignoring Jenkins server status
5. You want to ensure a Jenkins build step is aborted if it runs longer than 5 minutes, but you also want to retry the step up to 2 times if it fails due to timeout. Which pipeline snippet correctly implements this?
hard
A. retry(2) {
timeout(time: 5, unit: 'MINUTES') {
sh 'run-step.sh'
}
}
B. timeout(time: 5, unit: 'MINUTES') {
retry(2) {
sh 'run-step.sh'
}
}
C. timeout(time: 5, unit: 'MINUTES', retry: 2) {
sh 'run-step.sh'
}
D. retry(2, timeout(time: 5, unit: 'MINUTES')) {
sh 'run-step.sh'
}
Solution
Step 1: Understand retry and timeout nesting
To retry a step if it times out, the timeout block must be inside the retry block so the whole timeout step is retried.
Step 2: Evaluate each option's structure
retry(2) {
timeout(time: 5, unit: 'MINUTES') {
sh 'run-step.sh'
}
} correctly nests timeout inside retry. timeout(time: 5, unit: 'MINUTES') {
retry(2) {
sh 'run-step.sh'
}
} retries the inner command but timeout applies only once. The remaining options use invalid syntax.
Final Answer:
retry(2) {
timeout(time: 5, unit: 'MINUTES') {
sh 'run-step.sh'
}
} -> Option A
Quick Check:
retry outside timeout retries whole timeout block = A [OK]
Hint: Put timeout inside retry to retry timed-out steps [OK]
Common Mistakes:
Placing retry inside timeout causing no retry on timeout
Using invalid parameters in timeout
Misunderstanding retry scope
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.