Ich benutze eine gemeinsame jenkins-Bibliothek und klonen einen anderen Git Repo von dort. Das Repo enthält eine jenkinsfile ähnlich den follwing:Jenkins pipeline: Werte von einer anderen jenkinsfile lesen
#!/usr/bin/env groovy
@Library('mylib')
import jLib.*
someStage{
myparam = someValue
}
ich will "somevalue" lesen. Derzeit mache ich das mit einer Regexp, aber auf diese Weise kann ich nur eine Zeichenfolge und nicht komplexere Werte wie eine Karte abrufen.
In den documentation of Shared jenkins libs Werte werden von einem jenkinsfile die folgende Art und Weise geladen:
def call(body) {
// evaluate the body block, and collect configuration into the object
def config = [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = config
body()
}
Wie kann ich Werte aus dem Jenkinsfile extrahieren im Arbeitsbereich auf ähnliche Weise? Woher kommt der Körper?
Vielen Dank für Ihre Zeit
Ich glaube nicht, dass ich verstehe, was Sie versuchen zu tun - lesen Sie den Wert von 'Myparam'? Die Methode 'call (body)' ist eine Groovy-Methode, die eine Funktion aufruft und aufruft. Man kann sich die Signatur wie 'call (Closure body) vorstellen, wenn das hilft. – mkobit
Ja Ich möchte den Wert von Myparam lesen. – herm
Grundsätzlich möchte ich diese Datei in meinem Arbeitsbereich in eine Closure umwandeln und die darin enthaltenen Werte lesen, ähnlich wie es im zweiten Snippet angezeigt wird. Aber ich weiß nicht wie. – herm