I found out how to create input parameters dynamically from this SO answer

 agent any stages { stage("Release scope") { steps { script { // This list is going to come from a file, and is going to be big. // for example purpose, I am creating a file with 3 items in it. sh "echo \"first\nsecond\nthird\" > ${WORKSPACE}/list" // Load the list into a variable env.LIST = readFile (file: "${WORKSPACE}/list") // Show the select input env.RELEASE_SCOPE = input message: 'User input required', ok: 'Release!', parameters: [choice(name: 'CHOOSE_RELEASE', choices: env.LIST, description: 'What are the choices?')] } echo "Release scope selected: ${env.RELEASE_SCOPE}" } } } } 

This allows us to choose only one as it's a choice parameter, how to use the same list to create checkbox parameter, so the user can choose more than one as needed? e.g: if the user chooses first and third, then the last echo should print Release scope selected: first,third or the following is fine too, so I can iterate over and find the true ones Release scope selected: {first: true, second: false, third: true}

2 Answers

I could use extendedChoice as below

 agent any stages { stage("Release scope") { steps { script { // This list is going to come from a file, and is going to be big. // for example purpose, I am creating a file with 3 items in it. sh "echo \"first\nsecond\nthird\" > ${WORKSPACE}/list" // Load the list into a variable env.LIST = readFile("${WORKSPACE}/list").replaceAll(~/\n/, ",") env.RELEASE_SCOPE = input message: 'User input required', ok: 'Release!', parameters: [extendedChoice( name: 'ArchitecturesCh', defaultValue: "${env.BUILD_ARCHS}", multiSelectDelimiter: ',', type: 'PT_CHECKBOX', value: env.LIST )] // Show the select input env.RELEASE_SCOPE = input message: 'User input required', ok: 'Release!', parameters: [choice(name: 'CHOOSE_RELEASE', choices: env.LIST, description: 'What are the choices?')] } echo "Release scope selected: ${env.RELEASE_SCOPE}" } } } } 

There is a booleanParam:

parameters { booleanParam( name: 'MY_BOOLEAN', defaultValue: true, description: 'My boolean' ) } // parameters 

It's oddly named, as all the other param types don't have the "Param" name in them. Eg: string, choice, etc.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.