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 '...', docker oder none.
  • stages/stage – strukturieren den Ablauf (Build, Test, Deploy); steps enthalten 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).