Zarządzam wieloma zadaniami w Jenkins przez wtyczkę DSL. Ta wtyczka używa definicji .groovy, więc myślę, że nawet jeśli ktoś nie używa Jenkinsa, ale używa groovy, może ci pomóc.
Zasadniczo chcę utworzyć dodatkowy plik, którym może być plik groovy, JSON lub YAML, cokolwiek. Ważna jest możliwość połączenia tego pliku z moim plikiem .groovy.
W tym pliku definiuję zmienne (raczej tylko ciągi znaków), na przykład adres IP lub inne rzeczy, np.
ip_gitlab: 1.2.3.4
default_user: admin
W moich groovy plikach chcę móc korzystać z tych zmiennych.
To podejście jest możliwe w groovy?
class GLOBAL{ def a=111; def b=222; }
. wtedy w kodzie powinieneś mieć do niego dostępGLOBAL.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'
Ten błąd występuje podczas przetwarzania twojej klasy GLOBALstatic
prefiks.class GLOBAL{ static def a=111; static def b=222; }
. ale twój błąd jest dziwny. czy możesz pokazać zadeklarowaną zmienną i sposób jej użycia w dsl.Odpowiedzi:
Sugeruję użycie pliku właściwości, jak napisał @JBaruch
I załaduj to
Następnie możesz go użyć, na przykład uzyskać ip:
źródło
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-stepsStwórz plik groovy i zdefiniuj ogólne informacje i użyj
load
.Np. Hello.conf (napisane przez groovy)
I użyj tego przez
load
źródło
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()
jeśli potrzebujesz konkretnej odpowiedzi Jenkins: Jenn ma wtyczkę Config File Provider .
Pliki konfiguracji / właściwości można przechowywać za pomocą plików zarządzanych. Przejdź do Zarządzaj Jenkins> Zarządzane pliki i utwórz nowy plik. Obsługuje pliki .groovy, .json, .xml i wiele innych.
Gdy już to zrobisz, możesz załadować ten plik do zadania za pomocą pola wyboru Zapewnij plik konfiguracji, który automatycznie załaduje plik do zmiennej env.
źródło