Jenkins — was es ist, Systemarchitektur und CI/CD-Server Einrichtung

Autor: IT Sectr Veröffentlicht: 2026-04-13 Lesezeit: 10 Min.

Jenkins ist ein Open-Source-CI/CD-Server, der das Erstellen, Testen und Ausliefern mobiler Anwendungen automatisiert. Im Gegensatz zu Cloud-Lösungen wird Jenkins auf Ihrer eigenen Infrastruktur bereitgestellt und über eine Weboberfläche oder Code konfiguriert. Laut CloudBees, 2025 nutzen über 1,6 Millionen Teams Jenkins für CI/CD-Prozesse. Das System unterstützt verteilte Builds durch eine Master-Agent-Architektur und über 1800 Plugins zur Integration mit Entwicklungstools.

Wichtige Punkte

  • Jenkins — Open-Source-CI/CD-Server auf Java-Basis zur Automatisierung von Builds und Anwendungsauslieferung
  • Pipeline — Definition des CI/CD-Prozesses als Code in Jenkinsfile mit deklarativem oder skriptbasiertem Syntax
  • Master-Agent — Architektur mit Aufgabenverteilung zwischen Master-Knoten und Agents für parallele Builds
  • Plugins — über 1800 Module zur Integration mit Git, Docker, Fastlane, XCTest und Gradle
  • Jenkinsfile — Konfigurationsdatei im Repository, die Build-, Test- und Bereitstellungsschritte definiert

Was ist Jenkins und warum wird es in der mobilen Entwicklung benötigt

Jenkins ist ein Open-Source-CI/CD-Server, der in Java geschrieben ist und das Erstellen, Testen und Ausliefern von Software automatisiert. Im Kontext der mobilen Entwicklung ermöglicht Jenkins Teams, iOS- und Android-Anwendungen automatisch zu erstellen, Unit- und UI-Tests durchzuführen, Builds zu signieren und ohne manuelle Vorgänge an den App Store oder Google Play zu liefern.

Die Notwendigkeit für Jenkins entsteht, wenn ein Projekt über lokale Builds hinauswächst und regelmäßige Code-Integrationen von mehreren Entwicklern erfordert. Das manuelle Erstellen jedes Commits ist zeitaufwendig und fehleranfällig — Jenkins löst dieses Problem, indem es bei jeder Änderung im Repository automatische Pipelines startet.

Laut dem JetBrains Developer Ecosystem 2025 Report verwenden 54% der mobilen Teams Jenkins als ihre primäre CI/CD-Plattform. Das System unterstützt dank seiner Plugin-Architektur jede Sprache und Plattform — für Android stehen Gradle und SDK Manager zur Verfügung, für iOS Xcode Integration und Keychain Manager.

Verwenden Sie Jenkins in Projekten, bei denen Sie die volle Kontrolle über die Build-Infrastruktur, die Anpassung jedes CI/CD-Prozessschritts und die Integration mit Unternehmenssicherheitssystemen benötigen.

Jenkins-Architektur: Master, Agents und Pipeline-Betrieb

Die Jenkins-Architektur basiert auf dem Master-Agent-Modell. Der Master-Server verwaltet die Konfiguration, die Aufgabenplanung und die Weboberfläche, während die Agents die eigentlichen Builds auf dedizierten oder temporären Maschinen ausführen. Diese Architektur ermöglicht paralleles Erstellen von iOS-Anwendungen auf einem macOS-Agent und Android-Anwendungen auf einem Linux-Agent von einem einzigen Master-Server aus.

Master und Agent in Jenkins

Der Jenkins-Master-Knoten speichert alle Einstellungen, Plugins und den Build-Verlauf im Home-Verzeichnis $JENKINS_HOME. Agents verbinden sich über SSH, JNLP oder WebSocket mit dem Master und erhalten Aufgaben aus der Warteschlange. Für die mobile Entwicklung wird empfohlen, separate macOS-Agents für iOS-Builds und Linux-Agents für Android-Builds mit installierten SDKs und Tools bereitzustellen.

Jeder Agent kann ein permanenter Server oder ein dynamischer Docker-Container sein. Laut der CloudBees-Dokumentation reduziert die Verteilung von Builds auf 5 Agents die Gesamtzeit der CI/CD-Pipeline um 70% bei 10 parallelen Aufgaben.

Pipeline als Code

Jenkins Pipeline ist die Definition des gesamten CI/CD-Prozesses als Code, der zusammen mit dem Projekt im Repository gespeichert wird. Die Pipeline wird in einer Jenkinsfile beschrieben und unterstützt zwei Syntaxvarianten: Declarative (strukturiert, mit vordefinierten Blöcken) und Scripted (flexibel, basierend auf Groovy mit vollständiger Kontrolle über den Ausführungsablauf).

Der deklarative Syntax wird für die meisten mobilen Projekte empfohlen, da er Lesbarkeit und Vorhersagbarkeit gewährleistet. Scripted Pipeline eignet sich für komplexe Szenarien mit dynamischen parallelen Stufen, benutzerdefinierter Fehlerbehandlung und bedingter Logik basierend auf Umgebungsvariablen.

Jenkins Pipeline: Deklarativer und skriptbasierter Syntax

Jenkins Pipeline unterstützt zwei Syntaxvarianten, die festlegen, wie die Schritte des CI/CD-Prozesses beschrieben werden. Der deklarative Syntax verwendet eine Blockstruktur mit den Schlüsselwörtern pipeline, stages, stage und steps, was ihn für neue Benutzer intuitiv macht. Der skriptbasierte Syntax basiert auf Groovy und bietet vollständige Kontrolle über die Ausführung durch Bedingungsanweisungen und Schleifen.

Der deklarative Pipeline erstellt automatisch eine Sandbox — eine sichere Umgebung zur Ausführung von Groovy-Skripten. Dies schränkt den Zugriff auf gefährliche Methoden von Java und Groovy ein, was in Unternehmensumgebungen entscheidend ist, in denen die Pipeline-Sicherheit von einem Administrator kontrolliert wird.

Struktur des deklarativen Pipeline

Der deklarative Pipeline basiert auf vier Hauptblöcken: pipeline (Stammblock), agent (Agentenangabe), stages (Abfolge von Stufen) und post (Aktionen nach Abschluss). Jede Stufe enthält steps mit Build-Befehlen, und der post-Block definiert Aktionen bei Erfolg, Fehlschlag oder instabilem Build-Status.

Der post-Block ist besonders nützlich für mobile Projekte — hier können Sie Slack-Benachrichtigungen bei Build-Fehlern konfigurieren oder IPA- und APK-Artefakte nach erfolgreichem Abschluss archivieren. Jenkins garantiert die Ausführung von post-Aktionen, selbst wenn die Pipeline manuell abgebrochen wurde.

groovy
// Deklarativer Pipeline für iOS-Anwendung
pipeline {
    agent { label 'macos' }
    stages {
        stage('Build') {
            steps {
                sh 'xcodebuild -workspace App.xcworkspace -scheme App clean build'
            }
        }
        stage('Test') {
            steps {
                sh 'xcodebuild -workspace App.xcworkspace -scheme App test'
            }
        }
    }
}

Scripted Pipeline bietet einen node-Block anstelle von agent und ermöglicht die Verwendung von Groovy-Konstrukten für dynamische Verzweigungen. Dieser Syntax eignet sich für Pipelines, bei denen die Menge der Stufen von Build-Parametern oder Ergebnissen vorheriger Schritte abhängt.

groovy
// Scripted Pipeline mit parallelen Stufen
node('macos') {
    stage('Parallel Builds') {
        parallel(
            ios: { buildIOS() },
            android: { buildAndroid() }
        )
    }
}
def buildIOS() {
    sh 'fastlane ios build'
}

Jenkinsfile: CI/CD-Einrichtung für iOS-Projekte

Für iOS-Projekte benötigt die Jenkinsfile einen macOS-Agent mit installiertem Xcode, CocoaPods oder Swift Package Manager und Fastlane. Eine typische Pipeline umfasst Stufen: Abhängigkeiten installieren, Build erstellen, Tests ausführen, Code signieren und an TestFlight oder den App Store liefern.

Ein wesentliches Merkmal von iOS-Builds in Jenkins ist die Verwaltung von Zertifikaten und Provisioning-Profilen. Es wird empfohlen, Fastlane Match zum automatischen Abrufen von Zertifikaten aus einem Repository oder das Jenkins Credentials Binding Plugin zur sicheren Schlüsselspeicherung zu verwenden.

groovy
pipeline {
    agent { label 'macos' }
    environment {
        MATCH_PASSWORD = credentials('match-password')
    }
    stages {
        stage('Install Dependencies') {
            steps {
                sh 'pod install --repo-update'
            }
        }
        stage('Build and Test') {
            steps {
                sh 'fastlane scan'
                sh 'fastlane gym'
            }
        }
        stage('Deploy to TestFlight') {
            when { branch 'main' }
            steps {
                sh 'fastlane upload_testflight'
            }
        }
    }
}

Für iOS-Unit-Tests verwenden Sie xcodebuild test mit Simulator-Angabe. Jenkins unterstützt die Veröffentlichung von XCTest-Berichten über das JUnit-Plugin — konvertieren Sie .xcresult in das XML-Format, um Testergebnisse in das Build-Dashboard einzubetten.

Jenkinsfile: CI/CD-Einrichtung für Android-Projekte

Android-Builds in Jenkins werden auf Linux-Agents mit installiertem Java JDK, Android SDK, Gradle und Emulatoren ausgeführt. Die Pipeline umfasst Stufen: Linter-Prüfung, Unit-Tests, APK- oder AAB-Build, instrumentierte Tests auf dem Emulator und Veröffentlichung in der Google Play Console.

Zur Verwaltung des Android SDK verwenden Sie sdkmanager in der Jenkinsfile, um die erforderlichen Plattformen und Build-Tools zu installieren. Es wird empfohlen, die Verzeichnisse .gradle und .android zwischen Builds zwischenzuspeichern, um nachfolgende Ausführungen zu beschleunigen.

groovy
pipeline {
    agent { label 'linux' }
    stages {
        stage('Lint Check') {
            steps {
                sh './gradlew lint'
            }
        }
        stage('Unit Tests') {
            steps {
                sh './gradlew testDebugUnitTest'
            }
        }
        stage('Build APK') {
            steps {
                sh './gradlew assembleDebug'
            }
            post {
                success {
                    archiveArtifacts artifacts: '**/build/outputs/apk/**/*.apk'
                }
            }
        }
    }
}

Instrumentierte Tests auf Android erfordern einen laufenden Emulator. Jenkins unterstützt das Android Emulator Plugin, das vor Tests automatisch einen Emulator erstellt und startet. Für physische Geräte verwenden Sie Firebase Test Lab — die Integration ist über das Google Cloud SDK Plugin verfügbar.

Jenkins-Plugins zur Build-Automatisierung

Das Jenkins-Plugins-System ist ein entscheidender Vorteil der Plattform. Über 1800 Plugins decken alle CI/CD-Phasen ab: von der Integration mit Versionskontrollsystemen bis zur Bereitstellung in Cloud-Diensten. Jedes Plugin fügt neue Schritte zur Pipeline hinzu und erweitert die Weboberfläche um zusätzliche Konfigurationsseiten.

Für die mobile Entwicklung ist eine Reihe von Plugins zur Anmeldedaten-Verwaltung unerlässlich: Credentials Binding zum Speichern von App Store Connect-Tokens und Google Play-Dienstkonten. Das Xcode Integration Plugin fügt Build-Schritte für iOS-Anwendungen über die Jenkins-Oberfläche hinzu.

PluginZweckPlattform
Git IntegrationRepository-Klonen, Branch- und Pull-Request-VerwaltungiOS, Android
Gradle PluginAusführung von Gradle-Aufgaben für Android-Builds mit BerichtsveröffentlichungAndroid
Xcode IntegrationErstellung von iOS-Projekten ohne JenkinsfileiOS
Docker PipelineAusführung von Builds in Docker-Containern mit isolierter UmgebungiOS, Android
Slack NotificationBuild-Status-Benachrichtigungen in Slack-KanäleniOS, Android

Das Docker Pipeline Plugin ermöglicht die Ausführung jeder Build-Stufe in einem separaten Container, was die Umgebungsreproduzierbarkeit gewährleistet und das Problem von Umgebungsunterschieden beseitigt. Für Android-Builds verwenden Sie Images mit vorinstalliertem Android SDK aus der Gradle-Community.

Jenkins vs Travis CI: Vergleich für mobile Teams

Die Wahl zwischen Jenkins und Travis CI hängt von der Teamgröße, dem Budget und den Infrastrukturanforderungen ab. Jenkins ist eine selbstgehostete Lösung mit vollständiger Kontrolle, die einen dedizierten Server und Administrator erfordert. Travis CI ist ein Cloud-Dienst mit nutzungsabhängiger Abrechnung, der keine Serververwaltung erfordert.

Für Startups und kleine Teams ist Travis CI vorzuziehen — keine Infrastrukturkosten, einfache GitHub-Integration und vorgefertigte Builds für iOS und Android. Für Enterprise-Projekte bietet Jenkins Vorteile: eigene macOS-Runner, Einhaltung unternehmenseigener Sicherheitsrichtlinien und fein granulare Pipeline-Konfiguration über die Jenkinsfile.

Laut der Stack Overflow Survey 2025 verwenden 42% der professionellen Entwickler Jenkins gegenüber 12% bei Travis CI. Travis CI bleibt jedoch in der Open-Source-Community aufgrund seines kostenlosen Plans für öffentliche Repositories und der minimalen Einstiegshürde beliebt.

Vorteile von Jenkins in CI/CD-Prozessen

Jenkins bietet eine Reihe von Vorteilen, die es zum CI/CD-Standard für die mobile Entwicklung machen. Die kostenlose MIT-Lizenz ermöglicht die uneingeschränkte Nutzung des Servers in kommerziellen Projekten, und der Open-Source-Code garantiert Herstellerunabhängigkeit und Sicherheitsüberprüfbarkeit.

Die Master-Agent-Architektur ermöglicht horizontale Skalierung — das Hinzufügen eines neuen Agents erhöht den Pipelinendurchsatz linear. Jenkins unterstützt dynamische Agents in Kubernetes über Jenkins X, wodurch Builder bei Bedarf automatisch erstellt und zerstört werden können.

Das Plugin-Ökosystem deckt alle modernen Tools ab: Docker, Kubernetes, Fastlane, SonarQube, GitLab, Bitbucket. Wenn kein fertiges Plugin verfügbar ist, können Sie eine eigene Erweiterung in Java schreiben oder Pipeline Shared Libraries zur Wiederverwendung von Code zwischen Projekten verwenden.

Häufig gestellte Fragen

Was ist Jenkins in der mobilen Entwicklung?

Jenkins ist ein Open-Source-CI/CD-Server zur Automatisierung des Erstellens, Testens und Auslieferns von iOS- und Android-Anwendungen. Er läuft auf Java, unterstützt verteilte Builds durch eine Master-Agent-Architektur und wird über eine Weboberfläche oder eine Jenkinsfile im Projekt-Repository konfiguriert.

Wie unterscheidet sich Jenkins von anderen CI/CD-Systemen?

Jenkins unterscheidet sich durch seine selbstverwaltete Infrastruktur und sein Plugin-System. Im Gegensatz zu Travis CI oder GitHub Actions erfordert Jenkins die Installation auf einem eigenen Server, bietet aber die volle Kontrolle über die Build-Umgebung, Sicherheit und Zugriffsrichtlinien für Unternehmensprojekte.

Was ist eine Jenkins Pipeline und wie funktioniert sie?

Jenkins Pipeline ist die Definition eines CI/CD-Prozesses als Groovy-Code, der in einer Jenkinsfile gespeichert ist. Die Pipeline besteht aus Stufen (stages) und Schritten (steps), die das Erstellen, Testen und Bereitstellen beschreiben. Sie unterstützt zwei Syntaxvarianten: Declarative für einfache Szenarien und Scripted für komplexe.

Welche Jenkins-Plugins werden für die mobile Entwicklung benötigt?

Für iOS sind Xcode Integration und Keychain Manager unerlässlich. Für Android — Gradle Plugin und Android Emulator. Für beide Plattformen: Git Integration, Credentials Binding, Docker Pipeline und Slack Notification für Build-Status-Benachrichtigungen.

Wie richtet man Jenkins für iOS- und Android-Builds ein?

Installieren Sie Jenkins auf einem Server, fügen Sie einen macOS-Agent für iOS und einen Linux-Agent für Android mit installierten SDKs hinzu. Erstellen Sie eine Jenkinsfile im Repository-Stammverzeichnis, die die Build-Stufen beschreibt. Für iOS verwenden Sie Fastlane zur Codesignierung; für Android verwenden Sie Gradle-Aufgaben mit Abhängigkeits-Caching.

Zusammenfassung

  • Jenkins — Open-Source-CI/CD-Server auf Java-Basis zur Automatisierung des Erstellens, Testens und Auslieferns mobiler Anwendungen
  • Die Master-Agent-Architektur ermöglicht verteilte Builds auf macOS für iOS und Linux für Android
  • Jenkins Pipeline beschreibt den CI/CD-Prozess als Code in Jenkinsfile mit deklarativem oder skriptbasiertem Groovy-Syntax
  • Plugins erweitern die Funktionalität — über 1800 Module für Git, Docker, Fastlane und andere Tools
  • Die Jenkinsfile für iOS umfasst Pod-Installation, Xcode-Build, Tests und TestFlight-Auslieferung über Fastlane
  • Die Jenkinsfile für Android umfasst Linter, Unit-Tests, APK-Build und Emulator-Tests
  • Für Startups wird Cloud-Travis-CI empfohlen; für Enterprise-Projekte Jenkins mit vollständiger Infrastrukturkontrolle

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch