Bird
Raised Fist0
Jenkinsdevops~5 mins

currentBuild variables in Jenkins - Commands & Configuration

Choose your learning style10 modes available
Introduction
When running a Jenkins pipeline, you often want to know details about the current build like its status or number. currentBuild variables give you easy access to this information inside your pipeline scripts.
When you want to check if the current build succeeded or failed to decide next steps.
When you need to get the build number to tag artifacts or logs.
When you want to print the build URL for notifications or reports.
When you want to mark the build as unstable or aborted based on conditions.
When you want to access the current build's duration or result for analytics.
Config File - Jenkinsfile
Jenkinsfile
pipeline {
  agent any
  stages {
    stage('Example') {
      steps {
        script {
          echo "Build number: ${currentBuild.number}"
          echo "Build status: ${currentBuild.currentResult}"
          echo "Build URL: ${currentBuild.absoluteUrl}"
        }
      }
    }
  }
}

This Jenkinsfile defines a simple pipeline with one stage. Inside the stage, it uses currentBuild variables to print the build number, status, and URL. This shows how to access build details during the pipeline run.

Commands
Check that Jenkins Job Builder CLI is installed and working before running pipelines.
Terminal
jenkins-jobs --version
Expected OutputExpected
3.10.0
Trigger the Jenkins pipeline named 'example-pipeline' and wait for it to finish to see the output.
Terminal
jenkins-cli build example-pipeline -s
Expected OutputExpected
[Pipeline] echo Build number: 15 [Pipeline] echo Build status: SUCCESS [Pipeline] echo Build URL: http://jenkins.example.com/job/example-pipeline/15/ [Pipeline] End of Pipeline Finished: SUCCESS
→
-s - Waits for the build to complete before returning output
View the console output of build number 15 of the 'example-pipeline' to verify currentBuild variables output.
Terminal
jenkins-cli console example-pipeline 15
Expected OutputExpected
[Pipeline] echo Build number: 15 [Pipeline] echo Build status: SUCCESS [Pipeline] echo Build URL: http://jenkins.example.com/job/example-pipeline/15/ [Pipeline] End of Pipeline Finished: SUCCESS
Key Concept

If you remember nothing else from currentBuild variables, remember: they let you access live details about the running Jenkins build inside your pipeline script.

Common Mistakes
Trying to use currentBuild variables outside a pipeline script or outside a script block.
currentBuild is only available inside pipeline scripts and must be used inside a script block for Groovy code.
Always use currentBuild inside a 'script { }' block within a pipeline stage.
Assuming currentBuild.result updates immediately after a step.
currentBuild.result reflects the overall build status and may not update until the build finishes.
Use currentBuild.currentResult to get the current status during the build.
Summary
Use currentBuild variables inside Jenkins pipeline scripts to get info about the running build.
Access build number, status, and URL to make decisions or print useful info.
Always use currentBuild inside a script block within pipeline stages.

Practice

(1/5)
1. What does the currentBuild.number variable represent in a Jenkins Pipeline?
easy
A. The number of failed tests in the build
B. The unique build number of the current running job
C. The number of parallel stages in the pipeline
D. The total number of builds ever run on Jenkins

Solution

  1. Step 1: Understand the role of currentBuild

    The currentBuild variable holds information about the current Jenkins job execution.
  2. Step 2: Identify what number means

    The number property specifically gives the unique build number assigned to this run.
  3. Final Answer:

    The unique build number of the current running job -> Option B
  4. Quick Check:

    currentBuild.number = build number [OK]
Hint: Remember: currentBuild.number is the build's unique ID [OK]
Common Mistakes:
  • Confusing build number with total builds
  • Thinking it counts test failures
  • Mixing it with stage counts
2. Which of the following is the correct way to access the current build's result status in a Jenkins Pipeline script?
easy
A. currentBuild.result
B. currentBuild.status
C. currentBuild.state
D. currentBuild.outcome

Solution

  1. Step 1: Recall the property for build result

    The Jenkins currentBuild object uses result to store the build status like SUCCESS or FAILURE.
  2. Step 2: Verify other options

    status, state, and outcome are not valid properties for currentBuild.
  3. Final Answer:

    currentBuild.result -> Option A
  4. Quick Check:

    Build status = currentBuild.result [OK]
Hint: Use currentBuild.result for build status, not status or state [OK]
Common Mistakes:
  • Using currentBuild.status which is undefined
  • Confusing result with outcome
  • Trying to access non-existent properties
3. Given this Jenkins Pipeline snippet:
echo "Build number: ${currentBuild.number}"
echo "Build status: ${currentBuild.result}"

If the build number is 42 and the build just finished successfully, what will be the output?
medium
A. Build number: 42 Build status: SUCCESS
B. Build number: 42 Build status: null
C. Build number: null Build status: SUCCESS
D. Build number: 0 Build status: FAILURE

Solution

  1. Step 1: Understand variable values after build

    After a successful build, currentBuild.number is the build number (42), and currentBuild.result is "SUCCESS".
  2. Step 2: Substitute variables in echo statements

    Replacing variables gives:
    Build number: 42
    Build status: SUCCESS
  3. Final Answer:

    Build number: 42 Build status: SUCCESS -> Option A
  4. Quick Check:

    Number=42, Result=SUCCESS [OK]
Hint: After success, currentBuild.result = SUCCESS, number = build ID [OK]
Common Mistakes:
  • Expecting result to be null before build ends
  • Confusing build number with zero
  • Assuming result is FAILURE by default
4. You wrote this Jenkins Pipeline snippet:
if (currentBuild.status == 'SUCCESS') {
  echo 'Build succeeded'
} else {
  echo 'Build failed'
}

But it always prints 'Build failed' even when the build succeeds. What is the issue?
medium
A. The string comparison should use == instead of =
B. The if statement needs parentheses around the condition
C. The echo command is incorrect syntax
D. The property should be currentBuild.result, not currentBuild.status

Solution

  1. Step 1: Identify the incorrect property usage

    The currentBuild object does not have a status property; the correct property for build result is result.
  2. Step 2: Understand why the condition fails

    Since currentBuild.status is undefined, the condition never matches 'SUCCESS', so it always goes to else.
  3. Final Answer:

    The property should be currentBuild.result, not currentBuild.status -> Option D
  4. Quick Check:

    Use currentBuild.result for status check [OK]
Hint: Use currentBuild.result, not currentBuild.status, for build status [OK]
Common Mistakes:
  • Using currentBuild.status instead of currentBuild.result
  • Confusing assignment (=) with comparison (==)
  • Incorrect echo syntax in Jenkinsfile
5. In a Jenkins Pipeline, you want to set the display name of the current build to include the build number and status, like "Build #42 - SUCCESS". Which snippet correctly does this?
hard
A. currentBuild.displayName = "Build #${build.number} - ${build.result}"
B. currentBuild.name = "Build #${currentBuild.number} - ${currentBuild.status}"
C. currentBuild.displayName = "Build #${currentBuild.number} - ${currentBuild.result}"
D. currentBuild.setDisplayName("Build #${currentBuild.number} - ${currentBuild.result}")

Solution

  1. Step 1: Identify the correct property to set display name

    The property to set the build's display name is currentBuild.displayName.
  2. Step 2: Use correct variable names and syntax

    Use currentBuild.number and currentBuild.result inside the string with Groovy string interpolation.
  3. Final Answer:

    currentBuild.displayName = "Build #${currentBuild.number} - ${currentBuild.result}" -> Option C
  4. Quick Check:

    Set displayName with currentBuild.displayName and correct variables [OK]
Hint: Set displayName with currentBuild.displayName and correct variables [OK]
Common Mistakes:
  • Using currentBuild.name instead of displayName
  • Using undefined variable 'build'
  • Trying to call setDisplayName() which doesn't exist
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard