Ich habe der folgende Test Groovy Skript als vars
-workflow-libs
hinzugefügt werden:Der Zugriff auf diese Blöcke Jenkins Pipelines Skript
#!/usr/bin/groovy
this.test = false
def setTest(boolean test) { this.test = test }
def getTest() { this.test }
def log(level, msg) {
echo "[${level}] ${msg}"
}
def call(msg) {
if (this.test) log('TEST', msg)
}
Ich stelle dieses Skript unter workflow-libs/vars/test.groovy
.
Wenn ich führen Sie die folgende Pipeline:
node {
test 'foo'
}
der Prozess nie abgeschlossen ist, aber wenn ich die if (this.test)
entfernen dann endet es in der Regel, wenn ich feststellen, dass es ein Problem Zugriff auf this
Objekt?
Wer hatte ein ähnliches Verhalten?
Jenkins ist die neueste Version zum Zeitpunkt 1.651.3.
Dank @izzeki Ihr Hinweis führte schließlich zu mir mehr zu graben das Objekt und fand heraus, dass der eigentliche Parameter befindet sich unter this.binding.variables, die eine Karte obje ist ct Ich werde das Ergebnis als eine Antwort setzen, wenn jemand interessiert ist oder eine bessere Lösung bieten kann – tbo
Sure @ tbo. Sie können es auch nützlich finden zu wissen, dass die Bindung nicht serialisierbar ist, aber es hat 'Map getVariables()' Methode. – izzekil