Saltar al contenido

Los scripts Jenkins CI Pipeline no pueden utilizar el método groovy.lang.GroovyObject

Solución:

Arreglo rapido

Tuve un problema similar y lo resolví haciendo lo siguiente

  1. Vaya a jenkins> Administrar jenkins> Aprobación de script en proceso
  2. Había un comando pendiente, que tuve que aprobar.

En enlace de aprobación de proceso en Jenkins 2.61


Alternativa 1: deshabilitar la zona de pruebas

Como se explica en profundidad en este artículo, los scripts maravillosos se ejecutan en modo sandbox de forma predeterminada. Esto significa que un subconjunto de métodos geniales puede ejecutarse sin la aprobación del administrador. También es posible ejecutar scripts que no estén en modo sandbox, lo que implica que todo el script debe ser aprobado por un administrador a la vez. Esto evita que los usuarios aprueben cada línea en ese momento.

Se pueden ejecutar scripts sin sandbox desmarcando esta casilla de verificación en la configuración de su proyecto justo debajo de su script:
ingrese la descripción de la imagen aquí

Alternativa 2: deshabilitar la seguridad del script

Como se explica en este artículo, también es posible deshabilitar la seguridad del script por completo. Primero instale el complemento de seguridad de script permisivo y luego cambie su archivo jenkins.xml agregue este argumento:

-Dpermissive-script-security.enabled = true

Entonces, jenkins.xml se verá así:

<executable>..binjava</executable>
<arguments>-Dpermissive-script-security.enabled=true -Xrs -Xmx4096m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%jenkins.war" --httpPort=80 --webroot="%BASE%war"</arguments>

¡Asegúrese de saber lo que está haciendo si implementa esto!

Tienes que deshabilitar la caja de arena para Groovy en la configuración de tu trabajo.

Actualmente, esto no es posible para proyectos de múltiples ramas donde el script maravilloso proviene de scm. Para obtener más información, consulte https://issues.jenkins-ci.org/browse/JENKINS-28178

Me encontré con esto cuando reduje el número de parámetros de entrada de usuario en userInput de 3 a 1. Esto cambió el tipo de salida variable de userInput de una matriz a una primitiva.

Ejemplo:

myvar1 = userInput['param1']
myvar2 = userInput['param2']

para:

myvar = userInput
¡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 *