Ich versuche, ein deklaratives Jenkins-Pipeline-Skript zu erstellen, habe jedoch Probleme mit der einfachen Variablendeklaration.
Hier ist mein Skript:
pipeline {
agent none
stages {
stage("first") {
def foo = "foo" // fails with "WorkflowScript: 5: Expected a step @ line 5, column 13."
sh "echo ${foo}"
}
}
}
Ich erhalte jedoch diesen Fehler:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: Expected a step @ line 5, column 13.
def foo = "foo"
^
Ich bin auf Jenkins 2.7.4 und Pipeline 2.4.
jenkins
groovy
jenkins-pipeline
Malcolm Crum
quelle
quelle
Ich denke, der Fehler kommt nicht von der angegebenen Zeile, sondern von den ersten drei Zeilen. Versuchen Sie stattdessen Folgendes:
Ich denke, Sie hatten einige zusätzliche Zeilen, die nicht gültig sind ...
BEARBEITEN
Aus der Dokumentation des
environment
deklarativen Pipeline-Modells geht hervor, dass Sie einen Deklarationsblock verwenden müssen, um Ihre Variablen zu deklarieren, z.quelle
Stimmen Sie mit @ Pom12, @abayer überein. Um die Antwort zu vervollständigen, müssen Sie einen Skriptblock hinzufügen
Versuchen Sie so etwas:
quelle
In Jenkins 2.138.3 gibt es zwei verschiedene Arten von Pipelines.
Deklarative und geskriptete Pipelines.
"Deklarative Pipelines sind eine neue Erweiterung des Pipeline-DSL (es handelt sich im Grunde genommen um ein Pipeline-Skript mit nur einem Schritt, einem Pipeline-Schritt mit Argumenten (als Direktiven bezeichnet). Diese Direktiven sollten einer bestimmten Syntax folgen. Der Sinn dieses neuen Formats ist, dass es ist strenger und sollte daher für Pipelines-Neulinge einfacher sein, grafische Bearbeitung ermöglichen und vieles mehr. Skript-Pipelines sind der Fallback für erweiterte Anforderungen. "
Jenkins Pipeline: Agent gegen Knoten?
Hier ist ein Beispiel für die Verwendung von Umgebungsvariablen und globalen Variablen in einer deklarativen Pipeline. Nach allem, was ich sagen kann, sind die Umgebungen statisch, nachdem sie eingestellt wurden.
quelle
Sie verwenden eine deklarative Pipeline , die ein erfordert Skript-Schritt Groovy Code auszuführen. Dies ist ein großer Unterschied zu der Scripted Pipeline, bei der dies nicht erforderlich ist.
In der offiziellen Dokumentation heißt es:
quelle