Jenkins ist ein Open-Source Automatisierungstool, das ursprünglich für die Continuous Integration (CI) und Continuous Delivery (CD) von Software entwickelt wurde.
Jenkins basiert auf einer Client-Server-Architektur. Jenkins stellt eine Weboberfläche bereit, über die Entwickler zugreifen können. Konfiguration von Projekten, das Überwachen von Builds und Tests sowie das Anzeigen von Berichten.
Obwohl Jenkins ursprünglich für die Automatisierung von Softwareentwicklungsprozessen entwickelt wurde, kann es auch zur Automatisierung von Netzwerkaufgaben eingesetzt werden.
Pipelines kann man in einem Jenkinsfile definieren. Ein Jenkinsfile wird in Groovy geschrieben.
pipeline { agent any // Definiert den Agenten, auf dem die Pipeline ausgeführt wird. "any" bedeutet, dass die Pipeline auf jedem verfügbaren Agenten ausgeführt werden kann. options { // Hier können globale Optionen für die Pipeline definiert werden, wie zum Beispiel die Timeout-Einstellungen. } environment { // Hier können Umgebungsvariablen für die Pipeline definiert werden, die während der Ausführung verwendet werden können. } stages { stage('Build') { steps { // Hier werden die Schritte definiert, die im Build-Stadium ausgeführt werden sollen. } } stage('Test') { steps { // Hier werden die Schritte definiert, die im Test-Stadium ausgeführt werden sollen. } } // Weitere Stufen können nach Bedarf hinzugefügt werden. post { always { // Hier werden die Schritte definiert, die immer ausgeführt werden, unabhängig vom Erfolg oder Fehler der vorherigen Stufen. } success { // Hier werden die Schritte definiert, die ausgeführt werden, wenn alle vorherigen Stufen erfolgreich abgeschlossen wurden. } failure { // Hier werden die Schritte definiert, die ausgeführt werden, wenn eine der vorherigen Stufen fehlschlägt. } } } }
Groovy bietet auch Anweisungen wie z.B. Schleifen, Bedingungen, Funktionen, Parameter usw.
def myGroovyFunction(param1, param2) { // Hier wird Ihre individuelle Logik und Berechnungen durchgeführt // Rückgabe des Ergebnisses return param1 + param2 } pipeline { agent any parameters { groovyParam(defaultValue: 'default value', description: 'Beschreibung des Parameters', name: 'myParam', script: 'return myGroovyFunction("Hello", "World")') } stages { stage('Build') { steps { // Hier können Sie den Parameter `myParam` in Ihren Schritten verwenden script { def result = myParam() echo "Ergebnis der Groovy-Funktion: ${result}" } } } } }