Bird
Raised Fist0
Jenkinsdevops~10 mins

Parameters block declaration in Jenkins - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Parameters block declaration
Start Jenkins Pipeline
↓
Declare parameters block
↓
Define parameter types
↓
Parameters available for input
↓
Pipeline uses parameter values
↓
Pipeline runs with inputs
The pipeline starts, declares a parameters block with input types, waits for user input, then runs using those values.
Execution Sample
Jenkins
pipeline {
  agent any
  parameters {
    string(name: 'GREETING', defaultValue: 'Hello', description: 'Say something')
  }
  stages {
    stage('Example') {
      steps {
        echo params.GREETING
      }
    }
  }
}
This Jenkins pipeline declares a string parameter GREETING and prints its value during the build.
Process Table
StepActionParameter Block StateParameter ValuePipeline Output
1Start pipelineNo parameters declared yetN/AN/A
2Declare parameters blockParameters block created with GREETING stringDefault: 'Hello'N/A
3Wait for user inputParameters block activeUser inputs 'Hi there'N/A
4Start stage 'Example'Parameters block activeGREETING='Hi there'N/A
5Execute echo stepParameters block activeGREETING='Hi there'Hi there
6Pipeline endsParameters block usedGREETING='Hi there'Hi there
💡 Pipeline ends after executing all stages using the provided parameter value.
Status Tracker
VariableStartAfter Step 2After Step 3After Step 5Final
params.GREETINGundefined'Hello' (default)'Hi there' (user input)'Hi there''Hi there'
Key Moments - 3 Insights
Why does the pipeline wait after declaring the parameters block?
Because the parameters block defines inputs that Jenkins must collect before running the pipeline, as shown in step 3 of the execution_table.
What happens if the user does not provide input for the parameter?
The pipeline uses the default value defined in the parameters block, like 'Hello' in step 2 of the execution_table.
How does the pipeline access the parameter value inside the stages?
It uses the 'params' object with the parameter name, e.g., params.GREETING, as shown in step 5 where echo prints the value.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the parameter value at Step 3?
Aundefined
B'Hello' (default)
C'Hi there' (user input)
DN/A
💡 Hint
Check the 'Parameter Value' column at Step 3 in the execution_table.
At which step does the pipeline output the parameter value?
AStep 5
BStep 4
CStep 2
DStep 6
💡 Hint
Look at the 'Pipeline Output' column in the execution_table.
If the user did not input a value, what would params.GREETING be after Step 3?
A'Hi there'
B'Hello'
Cundefined
Dnull
💡 Hint
Refer to the default value in the 'Parameter Block State' at Step 2.
Concept Snapshot
Jenkins parameters block syntax:
parameters {
  string(name: 'PARAM', defaultValue: 'value', description: 'desc')
  booleanParam(name: 'FLAG', defaultValue: true, description: 'desc')
}
Parameters pause pipeline for input.
Access values via params.PARAM.
Defaults used if no input given.
Full Transcript
This visual execution shows how a Jenkins pipeline declares a parameters block with a string parameter named GREETING. The pipeline starts without parameters, then declares the parameters block with a default value 'Hello'. Jenkins waits for user input; if the user inputs 'Hi there', that value is stored. The pipeline then runs the Example stage, where it accesses params.GREETING and echoes the value. The pipeline ends after printing the parameter. Variables track the parameter value changes from undefined to default to user input. Key moments clarify why Jenkins waits for input, how defaults work, and how to access parameters in the pipeline. The quiz tests understanding of parameter values at different steps and default behavior.

Practice

(1/5)
1. What is the purpose of the parameters block in a Jenkins pipeline?
easy
A. To define inputs that users can provide before the job runs
B. To specify the stages of the pipeline
C. To set environment variables for the pipeline
D. To declare the agent where the pipeline runs

Solution

  1. Step 1: Understand the role of the parameters block

    The parameters block is used to ask users for input before the pipeline starts.
  2. Step 2: Compare with other pipeline blocks

    Other blocks like stages define pipeline steps, environment sets variables, and agent defines the execution node.
  3. Final Answer:

    To define inputs that users can provide before the job runs -> Option A
  4. Quick Check:

    parameters block = user inputs [OK]
Hint: Parameters block = user input before job runs [OK]
Common Mistakes:
  • Confusing parameters with stages
  • Thinking parameters set environment variables
  • Mixing parameters with agent declaration
2. Which of the following is the correct syntax to declare a string parameter named VERSION in a Jenkins pipeline?
easy
A. parameters { param string VERSION = '1.0' }
B. parameters { string VERSION = '1.0' }
C. parameters { string(name: 'VERSION', defaultValue: '1.0', description: 'Version number') }
D. parameters { string VERSION: '1.0' }

Solution

  1. Step 1: Recall correct string parameter syntax

    The correct syntax uses string(name: 'NAME', defaultValue: 'value', description: 'text').
  2. Step 2: Check each option

    parameters { string(name: 'VERSION', defaultValue: '1.0', description: 'Version number') } matches the correct syntax. The other options use invalid or incorrect syntax.
  3. Final Answer:

    parameters { string(name: 'VERSION', defaultValue: '1.0', description: 'Version number') } -> Option C
  4. Quick Check:

    Correct string param syntax = parameters { string(name: 'VERSION', defaultValue: '1.0', description: 'Version number') } [OK]
Hint: Use string(name: 'NAME', defaultValue: '', description: '') [OK]
Common Mistakes:
  • Using assignment (=) inside parameters block
  • Omitting parameter name key
  • Incorrect parameter declaration keywords
3. Given this Jenkins pipeline snippet:
pipeline {
  agent any
  parameters {
    booleanParam(name: 'DEPLOY', defaultValue: true, description: 'Deploy to production?')
  }
  stages {
    stage('Check') {
      steps {
        script {
          if (params.DEPLOY) {
            echo 'Deploying...'
          } else {
            echo 'Skipping deploy'
          }
        }
      }
    }
  }
}

What will Jenkins print if the user selects false for DEPLOY?
medium
A. Deploying...
B. No output
C. Error: DEPLOY parameter not found
D. Skipping deploy

Solution

  1. Step 1: Understand booleanParam usage

    The parameter DEPLOY is a boolean with default true, but user selects false.
  2. Step 2: Follow the if condition in script

    If params.DEPLOY is true, it prints 'Deploying...'; else it prints 'Skipping deploy'. Since user chose false, it prints 'Skipping deploy'.
  3. Final Answer:

    Skipping deploy -> Option D
  4. Quick Check:

    params.DEPLOY false = 'Skipping deploy' [OK]
Hint: Boolean param false triggers else branch [OK]
Common Mistakes:
  • Assuming defaultValue always used ignoring user input
  • Confusing parameter name case sensitivity
  • Expecting error when parameter is valid
4. Identify the error in this parameters block:
parameters {
  choice(name: 'ENV', choices: 'dev\nstaging\nprod', description: 'Select environment')
  string(name: 'TAG', default: 'latest', description: 'Docker tag')
}
medium
A. The choices string should use commas instead of newlines
B. The string parameter uses 'default' instead of 'defaultValue'
C. The choice parameter name must be uppercase
D. Parameters block cannot have multiple parameters

Solution

  1. Step 1: Check choice parameter syntax

    Choice parameter uses a newline-separated string for choices, which is correct.
  2. Step 2: Check string parameter syntax

    String parameter must use 'defaultValue', not 'default'. This causes a syntax error.
  3. Final Answer:

    The string parameter uses 'default' instead of 'defaultValue' -> Option B
  4. Quick Check:

    String param defaultValue key required [OK]
Hint: Use defaultValue, not default, for string parameters [OK]
Common Mistakes:
  • Using 'default' instead of 'defaultValue'
  • Misformatting choices string
  • Assuming parameter names must be uppercase
5. You want to create a Jenkins pipeline that asks the user to select multiple branches to build from a list, but Jenkins does not have a built-in multi-select parameter. How can you simulate this using the parameters block?
hard
A. Use a string parameter where the user enters branch names separated by commas
B. Use multiple boolean parameters, one for each branch
C. Use a choice parameter with multiple selections enabled
D. Use a password parameter to hide branch names

Solution

  1. Step 1: Understand Jenkins parameter limitations

    Jenkins does not support multi-select choice parameters natively.
  2. Step 2: Find workaround using string parameter

    Using a string parameter, users can input multiple branch names separated by commas, which the pipeline can parse.
  3. Step 3: Evaluate other options

    Multiple booleans are cumbersome for many branches; choice parameter does not support multi-select; password parameter hides input but is unrelated.
  4. Final Answer:

    Use a string parameter where the user enters branch names separated by commas -> Option A
  5. Quick Check:

    Simulate multi-select with string input [OK]
Hint: Use comma-separated string input for multi-select simulation [OK]
Common Mistakes:
  • Expecting multi-select choice parameter exists
  • Using many booleans for many options
  • Misusing password parameter for selection
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