Bird
Raised Fist0
Jenkinsdevops~10 mins

Build steps execution in Jenkins - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Build steps execution
Start Build Job
↓
Execute Step 1
↓
Step 1 Success?
No→Fail Build
Yes↓
Execute Step 2
↓
Step 2 Success?
No→Fail Build
Yes↓
...
↓
All Steps Success
↓
Build Success
↓
End
The build job starts and runs each step in order. If any step fails, the build stops and fails. If all steps succeed, the build finishes successfully.
Execution Sample
Jenkins
stage('Build') {
  steps {
    echo 'Compiling code'
    sh 'make compile'
  }
}
stage('Test') {
  steps {
    echo 'Running tests'
    sh 'make test'
  }
}
This Jenkins pipeline runs a build stage to compile code, then a test stage to run tests.
Process Table
StepActionCommand/MessageResultNext Step
1Start Build JobN/ABuild job startedExecute Step 1
2Execute Step 1echo 'Compiling code'Message printedExecute Step 1 command
3Execute Step 1 commandsh 'make compile'Compile successExecute Step 2
4Execute Step 2echo 'Running tests'Message printedExecute Step 2 command
5Execute Step 2 commandsh 'make test'Tests passedBuild Success
6Build SuccessN/ABuild finished successfullyEnd
7EndN/ABuild job endedN/A
💡 Build ends after all steps succeed or if any step fails (not shown here as all succeed).
Status Tracker
VariableStartAfter Step 1After Step 2Final
Build StatusNot startedRunningRunningSuccess
Step ResultN/ASuccessSuccessN/A
Key Moments - 2 Insights
What happens if the 'make compile' command fails?
If 'make compile' fails (see execution_table row 3), the build stops immediately and is marked as failed. Subsequent steps do not run.
Why do we see 'Message printed' before running shell commands?
The echo commands print messages to the console to inform what is happening. This helps track progress before running actual commands (rows 2 and 4).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the build status after Step 1 command completes?
AFailed
BSuccess
CRunning
DNot started
💡 Hint
Check variable_tracker column 'After Step 1' for 'Build Status'.
At which step does the build finish successfully?
AStep 4
BStep 6
CStep 5
DStep 7
💡 Hint
Look at execution_table row where 'Build Success' is noted.
If the 'make test' command fails, what happens next?
ABuild is marked as failed and stops
BBuild continues to next step
CBuild restarts from Step 1
DBuild ignores failure and finishes successfully
💡 Hint
Refer to concept_flow where failure at any step leads to 'Fail Build'.
Concept Snapshot
Jenkins build steps run in order.
Each step runs commands or scripts.
If a step fails, build stops and fails.
Success means all steps completed.
Echo commands show progress messages.
Shell commands run actual build/test tasks.
Full Transcript
In Jenkins, a build job runs multiple steps one after another. Each step can print messages or run commands like compiling code or running tests. The job starts and executes the first step. If it succeeds, it moves to the next step. If any step fails, the build stops immediately and is marked as failed. If all steps succeed, the build finishes successfully. Echo commands help show progress messages in the console. Shell commands perform the actual work. Tracking the build status and step results helps understand the job's progress and outcome.

Practice

(1/5)
1. What is the main purpose of build steps in a Jenkins pipeline?
easy
A. To manage Jenkins plugins and updates
B. To create user accounts on the Jenkins server
C. To monitor server hardware performance
D. To run commands that compile, test, and package software automatically

Solution

  1. Step 1: Understand what build steps do

    Build steps are commands executed during a Jenkins pipeline to automate tasks.
  2. Step 2: Identify the correct purpose

    They help compile, test, and package software automatically as part of the build process.
  3. Final Answer:

    To run commands that compile, test, and package software automatically -> Option D
  4. Quick Check:

    Build steps = automate build tasks [OK]
Hint: Build steps automate software tasks in order [OK]
Common Mistakes:
  • Confusing build steps with server management
  • Thinking build steps create users
  • Assuming build steps monitor hardware
2. Which of the following is the correct syntax to add a shell build step in a Jenkins pipeline script?
easy
A. sh 'echo Hello World'
B. shell: echo Hello World
C. execute shell { echo Hello World }
D. run shell echo Hello World

Solution

  1. Step 1: Recall Jenkins pipeline shell step syntax

    In Jenkins scripted or declarative pipelines, shell commands run with the sh step and a string argument.
  2. Step 2: Match the correct syntax

    The correct syntax is sh 'command', so sh 'echo Hello World' is valid.
  3. Final Answer:

    sh 'echo Hello World' -> Option A
  4. Quick Check:

    Shell step uses sh 'command' [OK]
Hint: Use sh 'command' for shell steps in Jenkins [OK]
Common Mistakes:
  • Using incorrect keywords like shell: or execute shell
  • Omitting quotes around the command
  • Writing commands without the sh step
3. Given this Jenkins pipeline snippet, what will be the output in the console?
stage('Build') {
  steps {
    sh 'echo Start Build'
    sh 'echo Build Complete'
  }
}
medium
A. Start Build only
B. Build Complete\nStart Build
C. Start Build\nBuild Complete
D. No output, commands are skipped

Solution

  1. Step 1: Understand step execution order

    Jenkins runs build steps in the order they appear inside the stage.
  2. Step 2: Trace the commands

    First, echo Start Build runs, printing "Start Build". Then echo Build Complete runs, printing "Build Complete".
  3. Final Answer:

    Start Build\nBuild Complete -> Option C
  4. Quick Check:

    Steps run in order, output matches [OK]
Hint: Steps run top to bottom inside stages [OK]
Common Mistakes:
  • Assuming steps run in reverse order
  • Thinking only first step outputs
  • Believing steps might be skipped without error
4. You have this Jenkins pipeline snippet:
stage('Test') {
  steps {
    sh 'echo Running tests'
    sh 'exit 1'
    sh 'echo Tests done'
  }
}
What will happen when this pipeline runs?
medium
A. All commands run, including 'echo Tests done'
B. Pipeline stops at 'exit 1' and 'echo Tests done' is not executed
C. Pipeline ignores 'exit 1' and continues
D. Pipeline skips 'echo Running tests' and runs others

Solution

  1. Step 1: Understand shell step failure behavior

    In Jenkins, if a shell command returns a non-zero exit code (like exit 1), the pipeline fails and stops executing further steps.
  2. Step 2: Analyze the commands

    After sh 'exit 1' fails, the next step sh 'echo Tests done' will not run.
  3. Final Answer:

    Pipeline stops at 'exit 1' and 'echo Tests done' is not executed -> Option B
  4. Quick Check:

    Non-zero exit stops pipeline [OK]
Hint: Non-zero exit code stops pipeline steps [OK]
Common Mistakes:
  • Assuming pipeline continues after failure
  • Thinking all steps always run
  • Ignoring exit codes in shell steps
5. You want to run two build steps in a Jenkins pipeline: first compile code, then run tests only if compile succeeds. Which pipeline snippet correctly implements this?
hard
A. stage('Build') { steps { sh 'compile.sh' script { if (currentBuild.result != 'FAILURE') { sh 'test.sh' } } } }
B. stage('Build') { steps { sh 'compile.sh || true' sh 'test.sh' } }
C. stage('Build') { steps { sh 'compile.sh' } } stage('Test') { steps { sh 'test.sh' } }
D. } } 'hs.tset' hs 'eurt || hs.elipmoc' hs { spets { )'dliuB'(egats

Solution

  1. Step 1: Understand conditional execution in Jenkins pipeline

    To run tests only if compile succeeds, you need to check the build status before running tests.
  2. Step 2: Analyze options

    stage('Build') { steps { sh 'compile.sh' script { if (currentBuild.result != 'FAILURE') { sh 'test.sh' } } } } uses a script block to check if the build is not failed before running tests, ensuring tests run only after successful compile.
  3. Final Answer:

    sh 'compile.sh'; script { if (currentBuild.result != 'FAILURE') { sh 'test.sh' } } -> Option A
  4. Quick Check:

    Conditional test run uses script and build status check [OK]
Hint: Use script block to conditionally run steps [OK]
Common Mistakes:
  • Running all steps unconditionally
  • Using shell || true which ignores compile failure
  • Splitting stages without controlling flow
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