Estoy gestionando muchos trabajos en Jenkins mediante el complemento DSL. Ese complemento está usando definiciones .groovy, así que creo que incluso si alguien no usa Jenkins, pero usar groovy puede ayudar.
En general, quiero crear un archivo adicional, que puede ser un archivo maravilloso, JSON o YAML, lo que sea. Es importante la posibilidad de conectar ese archivo con mi archivo .groovy.
En ese archivo, estoy definiendo variables (en lugar de solo cadenas) por ejemplo, dirección IP u otras cosas, por ejemplo.
ip_gitlab: 1.2.3.4
default_user: admin
En mis maravillosos archivos, quiero poder usar estas variables.
Ese enfoque es posible en groovy?
class GLOBAL{ def a=111; def b=222; }
. entonces en el código deberías poder acceder a élGLOBAL.a
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'org.codehaus.groovy.runtime.InvokerHelper$1@641eff69' with class 'org.codehaus.groovy.runtime.InvokerHelper$1' to class 'javaposse.jobdsl.dsl.JobParent'
este error ocurre durante el procesamiento de tu clase GLOBALstatic
prefijo.class GLOBAL{ static def a=111; static def b=222; }
. Pero el error que tienes es extraño. ¿podría mostrar la variable que ha declarado y cómo la usa en dsl?Respuestas:
Sugiero usar un archivo de propiedades como @JBaruch escribió
Y cargarlo
Entonces puede usarlo, obtener ip por ejemplo:
fuente
FATAL: test.properties (No such file or directory) java.io.FileNotFoundException: test.properties (No such file or directory)
readFile
jenkins.io/doc/pipeline/steps/workflow-basic-stepsHaga un archivo maravilloso y defina información general y uso
load
.Por ejemplo, hello.conf (escrito por groovy)
Y úsalo por
load
fuente
ERROR: (pipeline.groovy, line 1) No signature of method: pipeline.load() is applicable for argument types: (java.lang.String) values: [a_test.groovy]Possible solutions: job(java.lang.String), find(), folder(java.lang.String), job(java.lang.String, groovy.lang.Closure), find(groovy.lang.Closure), wait()
si desea una respuesta específica de Jenkins: Hay un complemento de proveedor de archivos de configuración para jenkins.
Puede almacenar archivos de configuración / propiedades a través de archivos administrados. Vaya a Administrar Jenkins> Archivos administrados y cree un nuevo archivo. Es compatible con .groovy, .json, .xml y muchos otros.
Una vez que tenga eso, puede cargar dicho archivo dentro de un trabajo utilizando la casilla de verificación Proporcionar archivo de configuración que cargará el archivo en una variable env automáticamente.
fuente