Einfache Jenkins pipeline fehlschlägt, wenn ich überprüfen, eine Umgebungsvariable
In meinem Zweigstellen der pipeline-job, ich kann erfolgreich Zugriff auf Umgebungsvariablen wie dieser:
echo "$env.BRANCH_NAME"
Aber es wirft und der Ausnahme, wenn ich versuche, gegen den verglichen wird, die gleichen Umgebungsvariablen:
if($env.BRANCH_NAME == 'master')
{
echo "This is the master branch"
}
Hier ist die Spitze des Fehler-Stacks ich:
groovy.lang.MissingPropertyException: No such property: $env for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)
at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:28)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:4)
Muss ich tun, irgendeine Art von Skript Zulassung hier? Ich checkte Jenkins Verwalten -> In-Process-Skript Zustimmung, aber nichts ist da.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, entfernen das dollar-Zeichen, oder verwenden Sie "${env.BRANCH_NAME}"
Den früheren Antwort ist richtig, aber für mehr Informationen, ist das "$var" - syntax verwendet wird, in einen string zu interpolieren, den Wert der Variablen in den string. Außerhalb einer Zeichenfolge, auf die variable verweisen.