Saya mengelola banyak pekerjaan di Jenkins dengan plugin DSL. Plugin itu menggunakan definisi .groovy jadi saya pikir bahkan jika seseorang tidak menggunakan Jenkins tetapi menggunakan groovy mungkin dapat membantu.
Secara umum, saya ingin membuat file tambahan, yang mungkin berupa file asyik, JSON atau YAML, apa pun. Yang penting adalah kemungkinan untuk menghubungkan file itu dengan file .groovy saya.
Dalam file itu, saya mendefinisikan variabel (bukan hanya string) misalnya alamat IP atau hal-hal lain misalnya.
ip_gitlab: 1.2.3.4
default_user: admin
Dalam file asyik saya, saya ingin dapat menggunakan variabel-variabel ini.
Pendekatan itu mungkin di groovy?
class GLOBAL{ def a=111; def b=222; }
. maka dalam kode Anda harus dapat mengaksesnyaGLOBAL.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'
Kesalahan ini terjadi saat memproses kelas Anda GLOBALstatic
awalan.class GLOBAL{ static def a=111; static def b=222; }
. tetapi kesalahan yang Anda miliki aneh. Anda bisa menunjukkan variabel yang telah Anda nyatakan dan bagaimana Anda menggunakannya dalam dsl.Jawaban:
Saya sarankan menggunakan file properti sebagai @JBaruch menulis
Dan muat
Maka Anda bisa menggunakannya, dapatkan ip misalnya:
sumber
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-stepsBuat file asyik dan tentukan beberapa informasi umum dan gunakan
load
.Misalnya, hello.conf (ditulis oleh groovy)
Dan gunakan itu oleh
load
sumber
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()
jika Anda menginginkan jawaban spesifik Jenkins: Ada Plugin Penyedia File Config ke jenkins.
Anda dapat menyimpan file konfigurasi / properti melalui file yang Dikelola. Pergi ke Kelola Jenkins> File yang dikelola dan dan buat file baru. Ini mendukung .groovy, .json, .xml dan banyak lainnya.
Setelah Anda memilikinya, Anda dapat memuat file tersebut di dalam pekerjaan menggunakan kotak centang Berikan Konfigurasi file yang akan memuat file ke dalam variabel env secara otomatis.
sumber