Jenkinsfile ist die Pipeline-Definition von Jenkins, direkt im Repository gespeichert („Pipeline as Code"). Die Declarative Pipeline ist die empfohlene, gut lesbare Syntax mit festen Blöcken.
Grundgerüst
pipeline {
agent any
stages {
stage('Build') {
steps { sh 'make' }
}
}
post { always { cleanWs() } }
}
pipeline– Wurzelblock jeder deklarativen Pipeline.agent– legt fest, wo die Pipeline läuft:any,label '...',dockerodernone.stages/stage– strukturieren den Ablauf (Build, Test, Deploy);stepsenthalten die eigentlichen Schritte.sh– führt Shell-Befehle aus;echo,input(manuelle Freigabe),junit(Testreports).post– reagiert auf den Status:always,success,failure,unstable,aborted.
Direktiven für echte Pipelines
environment definiert Variablen (auch aus credentials(...)), parameters erlaubt Build-Parameter, when steuert Bedingungen (z. B. branch 'main'), options setzt Timeouts (timeout(time: 1, unit: 'HOURS')) und Retries. Mit stash/unstash werden Dateien zwischen Stages übertragen, archiveArtifacts speichert Build-Artefakte. tools aktiviert installierte Werkzeuge wie JDK oder Maven.
Pipelines werden aus dem SCM geladen (Multibranch Pipeline) und laufen in Agents, die Jenkins über SSH oder Docker verbindet.
Verwandte Themen: Bash-Befehle (sh-Schritte), Dockerfile-Befehle (Container-Builds), GitHub-Actions-Befehle (Alternative in der Cloud), YAML/TOML/JSON-Befehle (Konfigurationsformate).