Saltar al contenido

El parámetro booleano de Jenkins siempre es verdadero en groovy

Solución:

La respuesta es leer el parámetro de Jenkins como String y luego convertirlo a booleano usando el método .toBoolean (); Entonces, mi libraryBranch ahora está configurada de la siguiente manera:

boolean libraryBranch = build.buildVariableResolver.resolve("library_branch_feature").toString().toBoolean();

Solo por curiosidad, probé lo siguiente:

Establezca la variable ‘testmode’ como booleano en la configuración de la canalización. Inicie el trabajo, con el modo de prueba establecido en falso (sin marcar). En la secuencia de comandos de la canalización, ejecute el siguiente código inmediatamente después de la entrada:

    testmode=testmode.toBoolean()
    if (testmode==false) { print "testmode tests true"}else{print "testmode tests false"}

verá el resultado ‘testmode tests false’.

Para verificar mi afirmación de que el modo de prueba de la variable ‘booleana’ es REALMENTE una cadena cuando entra, probé:

    testmode=testmode.toBoolean()
    testmode=testmode.toBoolean()

y estalló el 2do ‘toBoolean’. Te ahorraré el mensaje de error …

Entonces, afirmo que testmode viene como la cadena “falso” en lugar de como un booleano (ya sea por promoción, degradación, forzamiento, lo que sea).

Entonces, si es un parámetro booleano, y realmente desea tratarlo como un booleano y no tener que decir ‘if (booleanvar == “true”)’, conviértalo a un booleano como se indicó anteriormente y listo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *