Pipeline as Code ist eine Funktion in der Open-Source-Software Jenkins. Jobabfolgen müssen hier nicht zwangsläufig konfiguriert werden. Stattdessen können sie als Skripte hinterlegt werden. Dies bietet in der alltäglichen Arbeit diverse Vorteile.
Mit Pipeline as Code lassen sich Jobabfolgen von Jenkins standardmäßig als Skriptfiles im Source Code Management hinterlegen.
(Bild: Jenkins.io)
Jenkins ist als kostenlose Open Source-Lösung zur Standardanwendung für die Automation in der Softwareentwicklung geworden. Mit der Einführung der zweiten Version im Jahr 2016 integrierten die Entwickler von CloudBees mit Pipeline as Code ein Feature, das es zuvor nur als Plug-in gab.
Jobabfolgen lassen sich seitdem standardmäßig als Skripte hinterlegen. Zuvor mussten sie über das Userinterface der Anwendung konfiguriert werden. Insbesondere in komplexen Entwicklungsumgebungen entstehen dadurch große Vorteile.
Pipelines haben in der Entwicklung sowie Bereitstellung von Anwendungen zwei Kernaufgaben:
1. Hier können Jobs hierarchisiert werden. Es entsteht eine Abfolge, wann welche Aufgaben durchgeführt werden. Neuerungen werden in der Pipeline geprüft. Als Teil der Jobabfolge werden Testroutinen eingefügt.
Die Pipeline sorgt in der Entwicklung für eine deutlich höhere Anwendungsstabilität und ist zugleich flexibel anpassbar. In unserer Zeit gibt es kaum noch Softwarelösungen, die nicht aus einer Pipeline stammen. Ihr Aufbau ist deshalb von besonderer Bedeutung. Insbesondere automatische Abläufe sollten sich schnell und einfach einfügen, ändern und wieder löschen lassen.
Pipelines sind dabei grundlegend nach dem Dominostein-Prinzip strukturiert. Ein abgeschlossener Job stößt die nächste Aufgabe an. Festgelegte Reihenfolgen werden so automatisch eingehalten.
Die ursprüngliche Lösung von Jenkins
Jenkins vertraute ursprünglich auf ein Graphical User Interface (GUI), das bis heute nach wie vor genutzt werden kann. Von Hand lassen sich Jobs konfigurieren und positionieren. Das fertige Ergebnis ist im Prinzip ein Zeitstrahl oder ein Koordinatensystem (woran sich auch bei Pipeline as Code nichts geändert hat). Die Idee hinter diesem Ansatz zielte auf die Zugänglichkeit: Auch Personen, die nicht coden können, sollen in der Lage sein, eine entsprechende Pipeline zu bauen. Der Gedanke, dass in der Softwareentwicklung die meisten Personen durchaus coden können (müssen), wurde dabei offenbar ausgeblendet.
Das Userinterface offenbarte bald einige Schwächen:
Änderungen im Detail sind nur durch großen Aufwand durchführbar.
„Wenn, dann“-Szenarien lassen sich kaum umsetzen, was insbesondere für Testroutinen ein Problem ist.
Parallele Jobabfolgen sind ebenfalls kaum einstellbar.
Durch das Dominostein-Prinzip einer Pipeline führen Änderungen der Abfolge über das Interface praktisch immer dazu, dass ausführliche Überarbeitungen notwendig werden.
Die Verbesserungen durch Pipeline as Code
CloudBees entwickelte mit Groovy DSL eine eigene Sprache für Jenkins. Eine geskriptete Pipeline gestattet es, kleinere Änderungen problemlos vorzunehmen. Oft muss nur eine Zeile geändert werden. Auch „Wenn, dann“-Szenarien sowie parallele Abläufe lassen sich programmieren.
Abfolgen-Änderungen fallen überdies deutlich leichter. Dadurch, dass nur Codezeilen verschoben, gelöscht oder hinzugefügt werden müssen, sind größere Umbauten in der Regel nicht notwendig. Pipeline as Code bietet zudem die Möglichkeit, Optionen, Trigger und Parameter für Pipelines standardmäßig zu hinterlegen. Wenn zusätzliche Kanäle für Jobabfolgen aufgebaut werden sollen, ist dies vorteilhaft.
Pipeline as Code nutzen
Skripte für Pipeline-Jobs müssen als Jenkins-File gespeichert werden. Sie werden im SCM abgelegt. Dies sollte aber nicht sofort geschehen. Wer Jenkins startet und den Bereich für neue Jobs aufruft, findet hier die zwei folgenden Einträge: PIPELINE und MULTIBRANCH PIPELINE. Im ersten Fall kann das Skript direkt einem Job zugeordnet werden.
Das System testet den Code. Funktioniert alles, wandert das Skript ins SCM. Die eigentliche Pipeline wird dann über den zweiten Eintrag aufgebaut. Hier muss nur das Repository angegeben werden. Jenkins sucht nun hier nach dem Jenkins-File und erledigt alles weitere automatisch nach den Angaben in der entsprechenden Datei.
Pipeline as Code ist kein perfektes System
Obgleich Pipeline as Code deutlich besser als die Vorgängerlösung ist, handelt es sich dennoch um ein System mit Schwachpunkten. Fehler sind beispielsweise in langen Codes deutlich schwieriger zu finden als bislang. Zudem werden viele Pipelines unnötig komplex gebaut. Entwickler verlieren sich in den Möglichkeiten, die sie durch Groovy DSL haben. Ein Teil der höheren Effizienz durch die Skripte kann so wieder verloren gehen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.