Jenkins Pipeline as Code mit Jenkinsfile
Definieren Sie Build-, Test- und Deployment-Phasen deklarativ in einem in Ihrem Repository versionierten Jenkinsfile, sodass die Pipeline selbst zusammen mit der Anwendung versioniert wird.
Jenkins Pipeline as Code mit Jenkinsfile ist eine kostenlose Docker & DevOps Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Docker & DevOps Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.
Pipeline as Code
Statt Jobs von Hand in der Jenkins-Oberfläche zu konfigurieren, beschreiben Sie die gesamte Pipeline in einer Jenkinsfile, die in Ihrem Repository gespeichert ist. Die Pipeline wird zu Code: überprüfbar, versioniert und portabel.
Deklarativ vs. skriptbasiert
Jenkins bietet zwei Syntaxvarianten. Deklarative Pipelines sind strukturiert und einsteigerfreundlich; skriptbasierte Pipelines verwenden vollständiges Groovy. Wir konzentrieren uns auf die deklarative Variante.
Der pipeline-Block
Jede deklarative Jenkinsfile beginnt mit einem pipeline-Block, der einen agent (den Ausführungsort) und stages enthält.
pipeline {
agent any
stages {
stage('Build') {
steps { echo 'Building...' }
}
}
}Stages definieren
Jede stage fasst zusammengehörige steps zusammen. Stages erscheinen in der Jenkins-Oberfläche als Spalten und machen den Fortschritt der Pipeline übersichtlich sichtbar.
stages {
stage('Build') { steps { sh 'make build' } }
stage('Test') { steps { sh 'make test' } }
}Shell-Schritte ausführen
Der sh-Schritt führt einen Shell-Befehl auf dem Agent aus. Verwenden Sie ihn zum Kompilieren von Code, Ausführen von Tests oder Erstellen eines Docker-Images.
steps {
sh 'docker build -t myapp:${BUILD_NUMBER} .'
}Umgebungsvariablen
Ein environment-Block definiert Variablen für alle Schritte. Jenkins stellt außerdem integrierte Variablen wie BUILD_NUMBER und GIT_COMMIT bereit.
environment {
REGISTRY = 'registry.example.com'
IMAGE = 'myapp'
}Credentials-Bindung
Hardcodieren Sie niemals Secrets. Speichern Sie sie in den Jenkins-Credentials und binden Sie sie mit dem Helfer credentials() ein, damit sie in Logs maskiert werden.
environment {
REG_PASS = credentials('registry-password')
}Post-Aktionen
Ein post-Block wird nach Abschluss der Stages ausgeführt und kann abhängig vom Ergebnis unterschiedliche Aktionen ausführen. Er eignet sich ideal für Benachrichtigungen und Aufräumarbeiten.
post {
success { echo 'Pipeline succeeded' }
failure { echo 'Pipeline failed' }
always { sh 'docker image prune -f' }
}Parallele Stages
Beschleunigen Sie die Pipeline, indem Sie unabhängige Aufgaben mit parallel gleichzeitig ausführen – zum Beispiel Unit- und Integrationstests.
stage('Tests') {
parallel {
stage('Unit') { steps { sh 'make unit' } }
stage('Integration') { steps { sh 'make int' } }
}
}Bedingte Stages
Die when-Direktive führt eine Stage nur aus, wenn eine Bedingung erfüllt ist – zum Beispiel eine Bereitstellung nur im Main-Branch.
stage('Deploy') {
when { branch 'main' }
steps { sh './deploy.sh' }
}Multibranch-Pipelines
Verweisen Sie Jenkins auf ein Repository. Jenkins erkennt dann jeden Branch mit einer Jenkinsfile und erstellt automatisch eine Pipeline pro Branch. Feature-Branches erhalten dadurch automatisch CI.
Kurztest
Wo befindet sich die Definition einer deklarativen Pipeline?
Zusammenfassung
Sie haben gelernt, Pipelines als Code zu definieren:
pipeline { agent; stages }bildet das deklarative Grundgerüstsh-Schritte führen Befehle aus;environmentundcredentials()verwalten die Konfigurationpost,parallelundwhenerweitern die Möglichkeiten- Multibranch-Pipelines stellen automatisch für jeden Branch CI bereit
Die Jenkinsfile liegt zusammen mit Ihrem Code und entwickelt sich mit ihm weiter.
Lerne Docker & DevOps Fundamentals mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 12
- Lektionen
- 48
Häufig gestellte Fragen
Ist die Lektion „Jenkins Pipeline as Code mit Jenkinsfile“ kostenlos?
Ja — der vollständige Text von „Jenkins Pipeline as Code mit Jenkinsfile“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Docker & DevOps Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Jenkins Pipeline as Code mit Jenkinsfile“?
Definieren Sie Build-, Test- und Deployment-Phasen deklarativ in einem in Ihrem Repository versionierten Jenkinsfile, sodass die Pipeline selbst zusammen mit der Anwendung versioniert wird. Du übst Docker & DevOps Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Docker & DevOps Fundamentals zu starten?
Keine Vorkenntnisse erforderlich. Docker & DevOps Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Jenkins Pipeline as Code mit Jenkinsfile“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Docker & DevOps Fundamentals-Lektion Code schreiben und ausführen?
Ja. Jede Docker & DevOps Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Einführung in Jenkins
- Docker-Images mit Jenkins erstellen
- Automatisierte Bereitstellung mit Jenkins
- Jenkins Pipeline as Code mit Jenkinsfile