Jenkins Declarative Piplines: el script no puede capturar el parámetro como variable.
Soy nuevo en Jenkins. Estoy tratando de crear un pipeline básico que utiliza parámetros basados en opciones. A continuación se muestra mi script.
Código —-
pipeline{
agent {
label ‘agente’
}
parameters {
choice choices: [‘John’, ‘Stacy’], description: ‘Elija uno’, name: ‘Persona’
}
stages {
stage(‘Imprimir’) {
steps {
echo “Hola ${params.Person}”
sh “””if (${params.Person} = ‘John’)
then
echo ‘La persona es hombre.’
else
echo ‘La persona es mujer.’
fi”””
}
}
}
}
Ahora mi construcción se completa correctamente independientemente de la opción que elija. Siempre muestra el resultado “La persona es mujer”.
A continuación se muestra el resultado de una de mis construcciones.
Comenzado por el usuario ****
[Pipeline] Inicio del Pipeline
[Pipeline] nodo
Ejecutando en agente en
/home/temp/jenkins_agent/workspace/ChoiceBased PL
[Pipeline] {
[Pipeline] etapa
[Pipeline] { (Imprimir)
[Pipeline] echo
Hola John
[Pipeline] sh
+ John = John
/home/temp/jenkins_agent/workspace/ChoiceBased PL@tmp/durable-
b7e98c46/script.sh: 1: John: no encontrado
+ echo La persona es mujer.
La persona es mujer.
[Pipeline] }
[Pipeline] // etapa
[Pipeline] }
[Pipeline] // nodo
[Pipeline] Fin del Pipeline
Finalizado: Éxito
Por favor, sugiera qué me falta.
davy.ai
Parece que falta comillas alrededor de
${params.Person}
en la declaración if. Modifica el pasosh
de la siguiente manera:Esto debería resolver el problema y mostrar correctamente el género según el parámetro seleccionado.