Jenkins - Scripted Pipeline - Input String
After some more research I found the answer:
def coreImageTags = input(
id: 'coreImageTags', message: 'Enter a comma separated list of additional tags for the image (0.0.1,some-tagname,etc):?',
parameters: [
[$class: 'StringParameterDefinition', defaultValue: 'None', description: 'List of tags', name: 'coreImageTagsList'],
]
)
echo ("Image tags: "+coreImageTags)
Important note
It is stated in the documentation but I want to point it out specifically: If you copy/paste my solution here, coreImageTags
will contain a string directly. If you do multiple parameters like so:
parameters: [
[$class: 'StringParameterDefinition', defaultValue: 'None', description: 'List of tags', name: 'coreImageTagsList'],
[$class: 'StringParameterDefinition', defaultValue: 'None', description: 'Something else', name: 'somethingElse'],
]
You will not get a single values but an array of values:
echo ("Image tags: "+coreImageTags['coreImageTagsList'])
echo ("Image tags: "+coreImageTags['somethingElse'])
The following posts will help:
stackoverflow.com read-interactive-input-in-jenkins-pipeline-to-a-variable
CloudBees - Pipeline-How-to-manage-user-inputs
A list of classes you can use in this way and what they do is in the Jenkins Input-Step documentation: Pipeline - Input Step
Related videos on Youtube
Worp
"We don't stop playing because we grow old; we grow old because we stop playing." - George Bernard Shaw
Updated on September 18, 2022Comments
-
Worp over 1 year
I am struggling to set up an input step in a scripted Jenkins pipeline that will let me as the user to input a string.
Scenario: I am building a Docker image. I want to ask the user what tags to tag the image with once it's built. I want the user to supply a comma separated list like so: latest,0.0.4,some-tag-name
All I have right now is an input asking the user if the core image should be built:
def buildCoreImage = input( message: 'Build Core Image?', ok: 'Yes', parameters: [ booleanParam(defaultValue: true, description: 'Push the button to build core image.',name: 'Yes?') ] ) echo "Build core?:" + buildCoreImage
So in theory it should be as easy as changing the booleanParam to a stringParam, BUT the documentation does not have it: Jenkins - Pipeline: Input Step
Thanks for your time!