In Jenkins declarative pipelines it is possible to prompt a user for an interactive input by creating the input step.
For example, at some stage of the Jenkins pipeline you may want to ask a user to provide the credentials.
The user input can be saved as an environment variable and used in the next steps.
Bellow i will show an example of the Jenkins pipeline with the input step.
Cool Tip: How to define a variable in the Jenkins pipeline! Read more →
Jenkins Input Step Example
An example of the Jenkinsfile with the input step:
pipeline {
agent any
stages {
stage ("Prompt for input") {
steps {
script {
env.USERNAME = input message: 'Please enter the username',
parameters: [string(defaultValue: '',
description: '',
name: 'Username')]
env.PASSWORD = input message: 'Please enter the password',
parameters: [password(defaultValue: '',
description: '',
name: 'Password')]
}
echo "Username: ${env.USERNAME}"
echo "Password: ${env.PASSWORD}"
}
}
}
}
In the example about we prompt a user for the input 2 times.
Each input step pauses the pipeline execution and waits for the user to type in the credentials:
[Pipeline] input Input requested
Cool Tip: Decrypt secrets masked by Jenkins credentials plugin! Read More →
Once the input data is saved as environment variables, they can be printed to the console using the echo command:
[Pipeline] echo Username: admin [Pipeline] echo Password: P@$$w0rd
Just awesome script
Thank you