Bird
Raised Fist0
Jenkinsdevops~10 mins

Pipeline stages and steps in Jenkins - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a stage named 'Build' in a Jenkins pipeline.

Jenkins
stage('[1]') {
    steps {
        echo 'Building the project'
    }
}
Drag options to blanks, or click blank then click option'
AInit
BBuild
CDeploy
DTest
Attempts:
3 left
💡 Hint
Common Mistakes
Using a step name instead of a stage name.
Leaving the stage name empty.
2fill in blank
medium

Complete the code to add a shell command step that prints 'Hello World' inside a stage.

Jenkins
stage('Example') {
    steps {
        [1] 'echo Hello World'
    }
}
Drag options to blanks, or click blank then click option'
Ash
Becho
Cscript
Dbat
Attempts:
3 left
💡 Hint
Common Mistakes
Using bat on a Linux agent.
Using echo as a step instead of a command.
3fill in blank
hard

Fix the error in the pipeline code by completing the missing keyword to define multiple stages.

Jenkins
pipeline {
    agent any
    [1] {
        stage('Build') {
            steps { echo 'Building' }
        }
        stage('Test') {
            steps { echo 'Testing' }
        }
    }
}
Drag options to blanks, or click blank then click option'
Astages
Bsteps
Cscript
Denvironment
Attempts:
3 left
💡 Hint
Common Mistakes
Using steps instead of stages to group stages.
Omitting the stages block entirely.
4fill in blank
hard

Fill both blanks to create a stage named 'Deploy' that runs a shell command to deploy the app.

Jenkins
stage('[1]') {
    steps {
        [2] 'deploy.sh'
    }
}
Drag options to blanks, or click blank then click option'
ADeploy
BBuild
Csh
Dbat
Attempts:
3 left
💡 Hint
Common Mistakes
Using bat on a Linux agent.
Naming the stage incorrectly.
5fill in blank
hard

Fill all three blanks to define a pipeline with an agent, stages block, and a stage named 'Test' that echoes a message.

Jenkins
pipeline {
    agent [1]
    [2] {
        stage('[3]') {
            steps {
                echo 'Running tests'
            }
        }
    }
}
Drag options to blanks, or click blank then click option'
Aany
Bstages
CTest
Dsteps
Attempts:
3 left
💡 Hint
Common Mistakes
Using steps instead of stages to group stages.
Incorrect agent specification.

Practice

(1/5)
1. What is the main purpose of stages in a Jenkins pipeline?
easy
A. To define environment variables
B. To run shell commands directly
C. To divide the pipeline into distinct parts for clarity
D. To store pipeline logs

Solution

  1. Step 1: Understand the role of stages

    Stages are used to split the pipeline into clear sections, making it easier to read and manage.
  2. Step 2: Differentiate stages from steps

    Steps are the actual commands or actions inside stages, not the division itself.
  3. Final Answer:

    To divide the pipeline into distinct parts for clarity -> Option C
  4. Quick Check:

    Stages divide pipeline parts = C [OK]
Hint: Stages split pipeline parts; steps run commands inside [OK]
Common Mistakes:
  • Confusing stages with steps
  • Thinking stages run commands directly
  • Assuming stages store logs
2. Which of the following is the correct syntax to define a stage named Build in a Jenkins declarative pipeline?
easy
A. stages { Build { steps { echo 'Building...' } } }
B. stage: Build { steps { echo 'Building...' } }
C. stage { name: 'Build' steps { echo 'Building...' } }
D. stage('Build') { steps { echo 'Building...' } }

Solution

  1. Step 1: Recall declarative pipeline stage syntax

    The correct syntax uses stage('Name') { ... } to define a stage.
  2. Step 2: Check the options for correct structure

    stage('Build') { steps { echo 'Building...' } } matches the correct syntax with stage('Build') { steps { ... } }.
  3. Final Answer:

    stage('Build') { steps { echo 'Building...' } } -> Option D
  4. Quick Check:

    Stage syntax uses stage('name') { steps { ... } } = A [OK]
Hint: Use stage('Name') { steps { ... } } for stages [OK]
Common Mistakes:
  • Using colon instead of parentheses for stage name
  • Placing stage inside stages incorrectly
  • Missing quotes around stage name
3. Given this Jenkins pipeline snippet, what will be the output when the pipeline runs?
pipeline {
  agent any
  stages {
    stage('Test') {
      steps {
        echo 'Running tests'
      }
    }
  }
}
medium
A. Running tests
B. Build stage executed
C. Syntax error
D. No output

Solution

  1. Step 1: Identify the stage and steps

    The pipeline has one stage named 'Test' with a step that echoes 'Running tests'.
  2. Step 2: Understand echo step output

    The echo step prints the given string to the console output when the pipeline runs.
  3. Final Answer:

    Running tests -> Option A
  4. Quick Check:

    Echo prints 'Running tests' = A [OK]
Hint: Echo prints text inside steps during stage run [OK]
Common Mistakes:
  • Thinking stage name prints output
  • Assuming syntax error without checking carefully
  • Expecting output from missing steps
4. Identify the error in this Jenkins pipeline snippet:
pipeline {
  agent any
  stages {
    stage('Deploy')
      steps {
        echo 'Deploying app'
      }
  }
}
medium
A. Steps block should be outside stages
B. Missing curly braces after stage declaration
C. Echo command syntax error
D. Incorrect agent declaration

Solution

  1. Step 1: Check stage syntax

    The stage block must have curly braces enclosing its content: stage('Deploy') { ... }.
  2. Step 2: Identify missing braces

    In the snippet, the stage declaration lacks opening and closing braces around steps.
  3. Final Answer:

    Missing curly braces after stage declaration -> Option B
  4. Quick Check:

    Stage needs braces { } = D [OK]
Hint: Always use braces {} after stage('name') [OK]
Common Mistakes:
  • Forgetting braces after stage name
  • Placing steps outside stages block
  • Misunderstanding agent syntax
5. You want to create a Jenkins pipeline with two stages: Build and Test. The Test stage should only run if the Build stage succeeds. Which pipeline snippet correctly implements this logic?
hard
A. pipeline { agent any stages { stage('Build') { steps { echo 'Building...' } } stage('Test') { steps { echo 'Testing...' } } } }
B. pipeline { agent any stages { stage('Build') { steps { echo 'Building...' } } stage('Test') { when { expression { currentBuild.result == 'SUCCESS' } } steps { echo 'Testing...' } } } }
C. pipeline { agent any stages { stage('Build') { steps { echo 'Building...' } } stage('Test') { when { branch 'main' } steps { echo 'Testing...' } } } }
D. pipeline { agent any stages { stage('Build') { steps { echo 'Building...' } } stage('Test') { steps { echo 'Testing...' } } } post { success { echo 'Build succeeded' } } }

Solution

  1. Step 1: Understand conditional stage execution

    Jenkins declarative pipelines run stages sequentially by default. If the Build stage fails, the Test stage is skipped.
  2. Step 2: Check the snippet with sequential stages

    pipeline {
      agent any
      stages {
        stage('Build') {
          steps {
            echo 'Building...'
          }
        }
        stage('Test') {
          steps {
            echo 'Testing...'
          }
        }
      }
    }
  3. Step 3: Verify distractors

    The snippet with when { expression { currentBuild.result == 'SUCCESS' } } uses the correct property result instead of currentResult.
    The snippet with when { branch 'main' } conditions on Git branch.
    The snippet with post { success { ... } } adds an unrelated post-action block.
  4. Final Answer:

    pipeline { agent any stages { stage('Build') { steps { echo 'Building...' } } stage('Test') { steps { echo 'Testing...' } } } } -> Option A
  5. Quick Check:

    Sequential stages run conditionally by default = A [OK]
Hint: Stages run sequentially by default; failure skips subsequent stages [OK]
Common Mistakes:
  • Using invalid when expression syntax
  • Conditioning on branch instead of stage success
  • Adding unnecessary post blocks
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