Ich versuche, meinen alten Projektbasis-Workflow in eine auf Jenkins basierende Pipeline zu konvertieren. Beim Durchgehen der Dokumente stellte ich fest, dass es zwei verschiedene Syntaxen mit dem Namen scripted
und gibt declarative
. Wie die declarative
kürzlich veröffentlichte Jenkins-Web- Syntax (Ende 2016). Obwohl es eine neue Syntaxversion gibt, unterstützt Jenkins auch weiterhin die Skriptsyntax.
Jetzt bin ich mir nicht sicher, in welcher Situation jeder dieser beiden Typen am besten zusammenpassen würde. scripted
Syntax wird bald veraltet sein? Wird declarative
also die Zukunft der Jenkins-Pipeline sein?
Jeder, der einige Gedanken zu diesen beiden Syntaxtypen teilen kann.
jenkins
continuous-integration
jenkins-pipeline
Nayana Adassuriya
quelle
quelle
Antworten:
Kopiert von https://jenkins.io/doc/book/pipeline/syntax/#compare
quelle
Eine andere zu berücksichtigende Sache ist, dass deklarative Pipelines einen script () - Schritt haben . Dies kann jede Skript-Pipeline ausführen. Daher würde ich empfehlen, deklarative Pipelines zu verwenden und bei Bedarf
script()
für Pipeline-Skripte zu verwenden. So bekommen Sie das Beste aus beiden Welten.quelle
script
Block in einer deklarativen Pipeline verwenden, sollten Sie die Verwendung einer Skript-Pipeline vollständig in Betracht ziehen.Ich habe kürzlich von einem Skript mit dem Kubernetes-Agenten auf deklarativ umgestellt. Bis zum 18. Juli hatten deklarative Pipelines nicht die volle Fähigkeit, Kubernetes-Pods zu spezifizieren. Mit dem zusätzlichen
yamlFile
Schritt können Sie jetzt Ihre Pod-Vorlage aus einer Yaml-Datei in Ihrem Repo lesen.Auf diese Weise können Sie beispielsweise das großartige Kubernetes-Plugin von vscode verwenden, um Ihre Pod-Vorlage zu validieren, sie dann in Ihre Jenkins-Datei einlesen und die Container nach Belieben in Schritten verwenden.
Wie oben erwähnt, können Sie Skriptblöcke hinzufügen. Beispiel-Pod-Vorlage mit benutzerdefiniertem JNLP und Docker.
quelle
deklarativ scheint die zukunftssicherere Option zu sein und die, die die Leute empfehlen. Dies ist die einzige, die der Visual Pipeline Editor unterstützen kann. Es unterstützt die Validierung. und es hat am Ende die meiste Kraft von Skripten, da Sie in den meisten Kontexten auf Skripte zurückgreifen können. Gelegentlich kommt jemand auf einen Anwendungsfall, bei dem er nicht ganz das tun kann, was er mit deklarativ tun möchte. Dies sind jedoch im Allgemeinen Personen, die seit einiger Zeit Skripte verwenden, und diese Funktionslücken schließen sich wahrscheinlich mit der Zeit.
Weitere Informationen: https://jenkins.io/blog/2017/02/03/declarative-pipeline-ga/
quelle
In der Jenkins-Dokumentation werden beide Typen richtig erklärt und verglichen.
Um es zu zitieren: "Scripted Pipeline bietet Jenkins-Benutzern eine enorme Flexibilität und Erweiterbarkeit. Die Groovy-Lernkurve ist normalerweise nicht für alle Mitglieder eines bestimmten Teams wünschenswert. Daher wurde Declarative Pipeline erstellt, um eine einfachere und einfühlsamere Syntax für zu bieten Authoring Jenkins Pipeline.
Die beiden sind im Grunde das gleiche Pipeline-Subsystem darunter. "
Lesen Sie hier mehr: https://jenkins.io/doc/book/pipeline/syntax/#compare
quelle
Sie können dies auch verweisen. Eine sehr gute Lektüre -> https://e.printstacktrace.blog/jenkins-scripted-pipeline-vs-declarative-pipeline-the-4-practical-differences/ @ Szymon.Stepniak https://stackoverflow.com/users/ 2194470 / szymon-stepniak? Tab = profile
quelle
Die deklarative Pipeline ist der Scripted Pipeline weit überlegen . Die deklarative Pipeline ist in der Lage , alles , dass die Scripted Pipeline kann ausgeführt werden, indem die Verwendung von Script-Schritt und hat eine Menge zusätzliche Funktionen.
Darüber hinaus unterstützt die deklarative Pipeline verschiedene Technologien wie Docker oder Kubernetes (siehe hier ).
Die deklarative Pipeline ist auch zukunftssicherer. Es befindet sich noch in der Entwicklung und neue Funktionen wie die neu eingeführte Matrix- Funktion wurden erst Ende 2019 hinzugefügt.
tl; dr - Deklarative Pipeline kann alles, was die Skript-Pipeline kann, und noch mehr.
quelle