They let you customize builds without changing the job itself. For example, you can build different versions, deploy to different environments, or run tests with different settings.Parameterized builds in Jenkins - Cheat Sheet & Quick Revision
Practice
What is the main purpose of parameterized builds in Jenkins?
Solution
Step 1: Understand parameterized builds concept
Parameterized builds let users provide inputs that change how the build runs.Step 2: Identify the main purpose
The main goal is to customize the build without changing the job code.Final Answer:
To allow users to input values that customize the build process -> Option AQuick Check:
Parameterized builds = user inputs [OK]
- Confusing parameterized builds with scheduling
- Thinking parameters deploy builds automatically
- Mixing monitoring with build customization
Which of the following is the correct syntax to define a string parameter named ENV in a Jenkins pipeline?
parameters {
?
}Solution
Step 1: Recall Jenkins pipeline parameter syntax
Jenkins usesstring(name: '', defaultValue: '', description: '')insideparametersblock.Step 2: Match correct syntax
string(name: 'ENV', defaultValue: 'dev', description: 'Environment') matches the correct syntax exactly.Final Answer:
string(name: 'ENV', defaultValue: 'dev', description: 'Environment') -> Option BQuick Check:
Correct parameter syntax = string(name: 'ENV', defaultValue: 'dev', description: 'Environment') [OK]
- Using incorrect function names like stringParam
- Missing named arguments or using wrong argument names
- Confusing parameter syntax with freestyle job parameters
Given this Jenkins pipeline snippet, what will be printed if the build is started with parameter BRANCH=feature?
pipeline {
agent any
parameters {
string(name: 'BRANCH', defaultValue: 'main', description: 'Git branch')
}
stages {
stage('Print Branch') {
steps {
echo "Building branch: ${params.BRANCH}"
}
}
}
}Solution
Step 1: Understand parameter usage in pipeline
The parameterBRANCHhas default 'main' but can be overridden at build start.Step 2: Check what happens when build starts with BRANCH=feature
The value 'feature' replaces default, soparams.BRANCHis 'feature'.Final Answer:
Building branch: feature -> Option CQuick Check:
Parameter override prints new value [OK]
- Assuming default value always prints
- Thinking variable is not replaced in echo
- Confusing parameter name with environment variables
Identify the error in this Jenkins pipeline snippet that defines a boolean parameter:
pipeline {
agent any
parameters {
booleanParam(name: 'DEPLOY', default: true, description: 'Deploy after build?')
}
stages {
stage('Check Deploy') {
steps {
script {
if (params.DEPLOY) {
echo 'Deploying...'
} else {
echo 'Skipping deploy'
}
}
}
}
}
}Solution
Step 1: Check boolean parameter syntax
Jenkins expectsbooleanParam(name: '', defaultValue: true/false, description: '').Step 2: Identify incorrect key
The snippet usesdefaultinstead ofdefaultValue, causing syntax error.Final Answer:
The default value key should be 'defaultValue' not 'default' -> Option DQuick Check:
Boolean param uses defaultValue key [OK]
- Using 'default' instead of 'defaultValue'
- Wrong parameter type name
- Incorrect case in parameter usage
You want to create a Jenkins pipeline that asks for two parameters: a choice of ENV with options dev, qa, prod, and a boolean RUN_TESTS. The pipeline should print the selected environment and whether tests will run. Which snippet correctly defines these parameters and uses them in the Print Info stage?
Solution
Step 1: Verify parameter definitions
Choice parameter requireschoicesas a list, boolean parameter usesbooleanParamwithdefaultValue.Step 2: Check parameter usage in steps
Parameters must be accessed asparams.ENVandparams.RUN_TESTSinsideecho.Final Answer:
parameters { choice(name: 'ENV', choices: ['dev', 'qa', 'prod'], description: 'Select environment') booleanParam(name: 'RUN_TESTS', defaultValue: false, description: 'Run tests?') } stages { stage('Print Info') { steps { echo "Environment: ${params.ENV}" echo "Run tests: ${params.RUN_TESTS}" } } } -> Option AQuick Check:
Correct parameter syntax + params usage = parameters { choice(name: 'ENV', choices: ['dev', 'qa', 'prod'], description: 'Select environment') booleanParam(name: 'RUN_TESTS', defaultValue: false, description: 'Run tests?') } stages { stage('Print Info') { steps { echo "Environment: ${params.ENV}" echo "Run tests: ${params.RUN_TESTS}" } } } [OK]
- Passing choices as comma string instead of list
- Using 'default' instead of 'defaultValue' for booleanParam
- Accessing parameters without 'params.' prefix
Ready to prove it?
Pass the test and this pattern moves unknown
