Ich verwalte viele Jobs in Jenkins per DSL-Plugin. Dieses Plugin verwendet .groovy-Definitionen, daher denke ich, auch wenn jemand Jenkins nicht verwendet, aber groovy verwendet, kann dies möglicherweise helfen.
Im Allgemeinen möchte ich eine zusätzliche Datei erstellen, die eine groovige Datei sein kann, JSON oder YAML, was auch immer. Es ist wichtig, diese Datei mit meiner .groovy-Datei zu verbinden.
In dieser Datei definiere ich Variablen (eher nur Zeichenfolgen), zum Beispiel Adress-IP oder andere Dinge, z.
ip_gitlab: 1.2.3.4
default_user: admin
In meinen groovigen Dateien möchte ich diese Variablen verwenden können.
Dieser Ansatz ist in groovig möglich?
class GLOBAL{ def a=111; def b=222; }
. dann im Code sollten Sie in der Lage sein, darauf zuzugreifenGLOBAL.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'
Dieser Fehler tritt während der Verarbeitung Ihrer Klasse GLOBALstatic
Präfix vorhanden sein.class GLOBAL{ static def a=111; static def b=222; }
. Aber ein Fehler, den Sie haben, ist seltsam. Könntest du die Variable anzeigen, die du deklariert hast und wie du sie in dsl verwendest?Antworten:
Ich schlage vor, eine Eigenschaftendatei zu verwenden, wie @JBaruch geschrieben hat
Und lade es
Dann können Sie es verwenden, erhalten Sie zum Beispiel IP:
quelle
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-stepsErstellen Sie eine groovige Datei und definieren Sie einige allgemeine Informationen und deren Verwendung
load
.ZB hallo.conf (geschrieben von groovy)
Und benutze es von
load
quelle
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()
Wenn Sie eine Jenkins-spezifische Antwort wünschen: Es gibt ein Config File Provider Plugin für Jenkins.
Sie können Konfigurations- / Eigenschaftendateien über verwaltete Dateien speichern. Gehen Sie zu Jenkins verwalten> Verwaltete Dateien und erstellen Sie eine neue Datei. Es unterstützt .groovy, .json, .xml und viele andere.
Sobald Sie dies haben, können Sie diese Datei in einen Job laden, indem Sie das Kontrollkästchen Konfigurationsdatei bereitstellen verwenden, mit dem die Datei automatisch in eine env-Variable geladen wird.
quelle