Bird
Raised Fist0
Jenkinsdevops~5 mins

Steps within stages in Jenkins - Commands & Configuration

Choose your learning style10 modes available
Introduction
When you automate software tasks with Jenkins, you organize work into stages. Each stage has steps that tell Jenkins exactly what to do. Steps are the small actions inside a stage that make your automation happen.
When you want to run commands like building code or running tests inside a specific part of your pipeline
When you need to break down a big task into smaller, clear actions inside a stage
When you want to see detailed progress and logs for each action Jenkins performs
When you want to add multiple commands or scripts to run one after another in a stage
When you want to control the order of operations inside your automation pipeline
Config File - Jenkinsfile
Jenkinsfile
pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        echo 'Starting build process'
        sh 'echo Building the project'
      }
    }
    stage('Test') {
      steps {
        echo 'Running tests'
        sh 'echo Tests executed successfully'
      }
    }
  }
}

This Jenkinsfile defines a pipeline with two stages: Build and Test.

Each stage has a steps block that lists the commands Jenkins will run.

The echo commands print messages to the console for clarity.

The sh commands run shell commands on the agent machine.

Commands
Check that Jenkins job CLI tools are installed and ready to use.
Terminal
jenkins-jobs --version
Expected OutputExpected
jenkins-jobs 3.3.1
Start the Jenkins pipeline named 'my-pipeline' which uses the Jenkinsfile with stages and steps.
Terminal
jenkins-cli build my-pipeline
Expected OutputExpected
[Pipeline] Start of Pipeline [Pipeline] stage [Pipeline] { (Build) [Pipeline] echo Starting build process [Pipeline] sh + echo Building the project Building the project [Pipeline] } [Pipeline] stage [Pipeline] { (Test) [Pipeline] echo Running tests [Pipeline] sh + echo Tests executed successfully Tests executed successfully [Pipeline] } [Pipeline] End of Pipeline
View the console output of the pipeline run to see the steps executed inside each stage.
Terminal
jenkins-cli console my-pipeline
Expected OutputExpected
Starting build process Building the project Running tests Tests executed successfully
Key Concept

Steps are the individual commands inside a stage that tell Jenkins exactly what to do, making your automation clear and organized.

Common Mistakes
Putting commands directly inside a stage without wrapping them in a steps block
Jenkins requires steps to be inside the steps block; otherwise, the pipeline will fail to run.
Always put commands inside a steps { } block within each stage.
Using shell commands without the sh step in a declarative pipeline
Jenkins does not recognize raw shell commands outside the sh step, causing errors.
Wrap shell commands inside sh 'command' to run them properly.
Summary
Define stages in Jenkinsfile to organize your pipeline into parts.
Inside each stage, use the steps block to list commands Jenkins should run.
Use echo for messages and sh for shell commands inside steps.

Practice

(1/5)
1. What is the main purpose of steps inside a Jenkins stage?
easy
A. To define the actual commands or actions Jenkins will execute
B. To name the stage in the pipeline
C. To set environment variables for the pipeline
D. To configure Jenkins plugins

Solution

  1. Step 1: Understand the role of stages

    Stages organize the pipeline into sections but do not run commands themselves.
  2. Step 2: Identify what steps do inside stages

    Steps contain the actual commands or scripts Jenkins executes during that stage.
  3. Final Answer:

    To define the actual commands or actions Jenkins will execute -> Option A
  4. Quick Check:

    Steps = commands inside stages [OK]
Hint: Steps run commands; stages just group them [OK]
Common Mistakes:
  • Confusing stage name with steps
  • Thinking steps configure plugins
  • Believing steps set environment variables
2. Which of the following is the correct syntax to define a step that prints 'Hello World' inside a Jenkins declarative pipeline stage?
easy
A. script { print 'Hello World' }
B. steps { echo 'Hello World' }
C. steps: echo('Hello World')
D. stage { echo 'Hello World' }

Solution

  1. Step 1: Recall declarative pipeline syntax for steps

    Inside a stage, steps are defined with the steps { ... } block.
  2. Step 2: Check the correct command to print

    The echo command prints messages in Jenkins pipelines.
  3. Final Answer:

    steps { echo 'Hello World' } -> Option B
  4. Quick Check:

    steps block + echo command = correct syntax [OK]
Hint: Use steps { echo 'text' } to print in Jenkins [OK]
Common Mistakes:
  • Using stage instead of steps for commands
  • Wrong colon syntax in steps
  • Using print instead of echo
3. Given this Jenkins pipeline snippet, what will be the output in the console?
stage('Build') {
  steps {
    echo 'Starting build'
    sh 'echo Build complete'
  }
}
medium
A. Syntax error in pipeline
B. Build complete\nStarting build
C. Starting build only
D. Starting build\nBuild complete

Solution

  1. Step 1: Understand the order of steps execution

    Steps run sequentially: first echo 'Starting build', then shell command sh 'echo Build complete'.
  2. Step 2: Determine console output

    The first prints 'Starting build', the shell prints 'Build complete', so output is both lines in order.
  3. Final Answer:

    Starting build\nBuild complete -> Option D
  4. Quick Check:

    Steps run in order, echo then shell output [OK]
Hint: Steps run top to bottom, echo then shell output [OK]
Common Mistakes:
  • Assuming shell output appears before echo
  • Thinking only echo prints
  • Confusing syntax causing errors
4. Identify the error in this Jenkins pipeline stage and how to fix it:
stage('Test') {
  steps
    echo 'Running tests'
}
medium
A. stage keyword should be inside steps
B. echo command is invalid; use print instead
C. Missing curly braces {} after steps; add steps { ... }
D. No error; pipeline is correct

Solution

  1. Step 1: Check syntax for steps block

    The steps block must have curly braces enclosing commands: steps { ... }.
  2. Step 2: Identify missing braces causing syntax error

    Here, steps is followed directly by echo without braces, which is invalid.
  3. Final Answer:

    Missing curly braces {} after steps; add steps { ... } -> Option C
  4. Quick Check:

    steps block requires braces { } [OK]
Hint: Always wrap steps commands inside steps { } [OK]
Common Mistakes:
  • Omitting braces after steps
  • Using print instead of echo
  • Placing stage inside steps
5. You want to run multiple shell commands sequentially inside a Jenkins stage. Which is the best way to organize these steps?
hard
A. Use a single sh step with commands separated by semicolons inside steps { }
B. Write multiple stage blocks, each with one sh command
C. Put all commands inside environment block
D. Use multiple steps blocks inside one stage

Solution

  1. Step 1: Understand how to run multiple shell commands

    Multiple commands can be run in one sh step by separating them with semicolons.
  2. Step 2: Identify correct pipeline structure

    Only one steps block is allowed per stage; multiple commands go inside one sh step or multiple steps inside the block.
  3. Final Answer:

    Use a single sh step with commands separated by semicolons inside steps { } -> Option A
  4. Quick Check:

    One steps block + one sh with multiple commands [OK]
Hint: Combine shell commands with semicolons inside one sh step [OK]
Common Mistakes:
  • Using multiple stages for commands
  • Trying multiple steps blocks inside one stage
  • Putting commands in environment block
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