Necesitamos tu apoyo para difundir nuestras crónicas referente a las ciencias informáticas.
Solución:
Necesitaba una solución similar. No encontré respuestas / ejemplos relacionados específicos para el complemento Active Choices en ninguna parte de mi búsqueda de Google. Con algo de I + D, finalmente pude hacer esto para un proyecto de tubería. Aquí está el código de Jenkinsfile
properties([
parameters([
[$class: 'ChoiceParameter',
choiceType: 'PT_SINGLE_SELECT',
description: 'Select the Env Name from the Dropdown List',
filterLength: 1,
filterable: true,
name: 'Env',
randomName: 'choice-parameter-5631314439613978',
script: [
$class: 'GroovyScript',
fallbackScript: [
classpath: [],
sandbox: false,
script:
'return['Could not get Env']'
],
script: [
classpath: [],
sandbox: false,
script:
'return["Dev","QA","Stage","Prod"]'
]
]
],
[$class: 'CascadeChoiceParameter',
choiceType: 'PT_SINGLE_SELECT',
description: 'Select the Server from the Dropdown List',
filterLength: 1,
filterable: true,
name: 'Server',
randomName: 'choice-parameter-5631314456178619',
referencedParameters: 'Env',
script: [
$class: 'GroovyScript',
fallbackScript: [
classpath: [],
sandbox: false,
script:
'return['Could not get Environment from Env Param']'
],
script: [
classpath: [],
sandbox: false,
script:
''' if (Env.equals("Dev"))
return["devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"]
else if(Env.equals("QA"))
return["qaaaa001","qabbb002","qaccc003"]
else if(Env.equals("Stage"))
return["staaa001","stbbb002","stccc003"]
else if(Env.equals("Prod"))
return["praaa001","prbbb002","prccc003"]
'''
]
]
]
])
])
pipeline
environment
vari = ""
agent any
stages
stage ("Example")
steps
script
echo 'Hello'
echo "$params.Env"
echo "$params.Server"
if (params.Server.equals("Could not get Environment from Env Param"))
echo "Must be the first build after Pipeline deployment. Aborting the build"
currentBuild.result = 'ABORTED'
return
echo "Crossed param validation"
Incluso puede usar “Parámetro de referencia reactivo de opciones activas” con las definiciones siguientes y el resto del código, siga como en el ejemplo anterior.
[$class: 'DynamicReferenceParameter',
choiceType: 'ET_FORMATTED_HTML',
description: 'These are the details in HTML format',
name: 'DetailsInHTML',
omitValueField: false,
randomName: 'choice-parameter-5633384460832175',
referencedParameters: 'Env, Server',
script: [
$class: 'ScriptlerScript',
parameters: [[$class: 'org.biouno.unochoice.model.ScriptlerScriptParameter', name: '', value: '$value']],
scriptlerScriptId: 'script.groovy'
]
]
Nota: asegúrese de tener un delimitador “,” entre varios bloques de definición de parámetros.
Espero que esto ayude a alguien.
En lugar de usar el Parámetro de referencia reactivo de opciones activas ¡Lo hice a continuación y está funcionando bien!
node('slave')
def choice1
def choice2
stage ('Select')
choice1 = input( id: 'userInput', message: 'Select your choice', parameters: [ [$class: 'ChoiceParameterDefinition', choices: 'aanbb', description: '', name: ''] ])
if(choice1.equals("aa"))
choice2 = input( id: 'userInput', message: 'Select your choice', parameters: [ [$class: 'ChoiceParameterDefinition', choices: 'yynww', description: '', name: ''] ])
else
choice2 = input( id: 'userInput', message: 'Select your choice', parameters: [ [$class: 'ChoiceParameterDefinition', choices: 'ggnkk', description: '', name: ''] ])
Muchas gracias @Yogeesh. Ayudó mucho. En mi caso, el requisito era seleccionar varios en lugar de uno. Entonces, usó choiceType: ‘PT_CHECKBOX’, y cumplió el propósito.
properties([
parameters([
[$class: 'ChoiceParameter',
choiceType: 'PT_SINGLE_SELECT',
description: 'Select the Env Name from the Dropdown List',
filterLength: 1,
filterable: true,
name: 'Env',
randomName: 'choice-parameter-5631314439613978',
script: [
$class: 'GroovyScript',
fallbackScript: [
classpath: [],
sandbox: false,
script:
'return['Could not get Env']'
],
script: [
classpath: [],
sandbox: false,
script:
'return["Dev","QA","Stage","Prod"]'
]
]
],
[$class: 'CascadeChoiceParameter',
choiceType: 'PT_CHECKBOX',
description: 'Select Servers',
filterLength: 1,
filterable: true,
name: 'Server',
randomName: 'choice-parameter-5631314456178619',
referencedParameters: 'Env',
script: [
$class: 'GroovyScript',
fallbackScript: [
classpath: [],
sandbox: false,
script:
'return['Could not get Environment from Env Param']'
],
script: [
classpath: [],
sandbox: false,
script:
''' if (Env.equals("Dev"))
return["devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"]
else if(Env.equals("QA"))
return["qaaaa001","qabbb002","qaccc003"]
else if(Env.equals("Stage"))
return["staaa001","stbbb002","stccc003"]
else if(Env.equals("Prod"))
return["praaa001","prbbb002","prccc003"]
'''
]
]
]
])
Si entiendes que te ha sido de provecho este artículo, sería de mucha ayuda si lo compartes con más juniors y nos ayudes a extender este contenido.