Jenkins — wat is het, systeemarchitectuur en configuratie van CI/CD-server

Auteur: IT Sectr Gepubliceerd: 2026-04-13 Leestijd: 10 min

Jenkins is een CI/CD-server met open source-code die het bouwen, testen en leveren van mobiele applicaties automatiseert. In tegenstelling tot cloud-oplossingen wordt Jenkins op eigen infrastructuur geïmplementeerd en geconfigureerd via een webinterface of code. Volgens CloudBees, 2025 gebruiken meer dan 1.6 miljoen teams Jenkins voor CI/CD-processen. Het systeem ondersteunt gedistribueerde builds via Master-Agent-architectuur en meer dan 1800 plugins voor integratie met ontwikkeltools.

Belangrijkste punten

  • Jenkins — Open Source CI/CD-server op Java voor automatisering van bouw en levering van applicaties
  • Pipeline — definitie van CI/CD-proces als code in Jenkinsfile met declaratieve of script-syntax
  • Master-Agent — architectuur met taakverdeling tussen hoofdknooppunt en agents voor parallelle builds
  • Plugins — meer dan 1800 modules voor integratie met Git, Docker, Fastlane, XCTest en Gradle
  • Jenkinsfile — configuratiebestand in repository dat stappen voor bouw, testen en implementatie definieert

Wat is Jenkins en waarom is het nodig in mobiele ontwikkeling

Jenkins is een CI/CD-server met open source-code geschreven in Java voor het automatiseren van bouw, testen en levering van software. In de context van mobiele ontwikkeling stelt Jenkins teams in staat om automatisch iOS- en Android-applicaties te bouwen, unit- en UI-tests uit te voeren, builds te ondertekenen en ze te leveren aan App Store of Google Play zonder handmatige handelingen.

De noodzaak voor Jenkins ontstaat wanneer een project lokale builds ontgroeit en regelmatige code-integraties van meerdere ontwikkelaars vereist. Handmatige bouw van elke commit kost tijd en is foutgevoelig — Jenkins lost dit probleem op door automatische pipelines te starten bij elke wijziging in de repository.

Volgens het JetBrains Developer Ecosystem 2025-rapport gebruikt 54% van de mobiele teams Jenkins als primair CI/CD-platform. Het systeem ondersteunt elke taal en platform dankzij de plugin-architectuur — voor Android zijn Gradle en SDK Manager beschikbaar, voor iOS — Xcode Integration en Keychain Manager.

Gebruik Jenkins in projecten waar volledige controle over de build-infrastructuur, aanpassing van elke stap van het CI/CD-proces en integratie met bedrijfsbeveiligingssystemen vereist is.

Jenkins-architectuur: Master, Agents en werking van Pipeline

De Jenkins-architectuur is gebaseerd op het Master-Agent-model. De Master-server beheert configuratie, taakplanning en webinterface, terwijl agents de feitelijke builds uitvoeren op dedicated of tijdelijke machines. Deze architectuur maakt het mogelijk om gelijktijdig een iOS-app op een macOS-agent en een Android-app op een Linux-agent te bouwen vanaf dezelfde Master-server.

Master en Agent in Jenkins

Het Master-knooppunt van Jenkins slaat alle instellingen, plugins en build-geschiedenis op in de hoofdmap $JENKINS_HOME. Agents verbinden met Master via SSH, JNLP of WebSocket en ontvangen taken uit de wachtrij. Voor mobiele ontwikkeling wordt aanbevolen aparte macOS-agents voor iOS-builds en Linux-agents voor Android-builds met geïnstalleerde SDK en tools in te zetten.

Elke agent kan een permanente server of een dynamische Docker-container zijn. Volgens CloudBees-documentatie vermindert verdeling van builds over 5 agents de totale CI/CD-pipelinetime met 70% bij 10 parallelle taken.

Pipeline als code

Jenkins Pipeline is de definitie van het hele CI/CD-proces in de vorm van code die samen met het project in de repository wordt opgeslagen. De Pipeline wordt beschreven in Jenkinsfile en ondersteunt twee syntaxen: Declarative (gestructureerd, met vooraf gedefinieerde blokken) en Scripted (flexibel, gebaseerd op Groovy met volledige controle over de uitvoeringsstroom).

Declaratieve syntax wordt aanbevolen voor de meeste mobiele projecten omdat het leesbaarheid en voorspelbaarheid biedt. Scripted Pipeline is geschikt voor complexe scenario's met dynamische parallelle fasen, aangepaste foutafhandeling en conditionele logica op basis van omgevingsvariabelen.

Jenkins Pipeline: Declarative en Scripted syntax

Jenkins Pipeline ondersteunt twee syntaxen die de manier bepalen waarop stappen van het CI/CD-proces worden beschreven. Declarative syntax gebruikt een blokstructuur met de trefwoorden pipeline, stages, stage en steps, wat het intuïtief maakt voor nieuwe gebruikers. Scripted syntax is gebaseerd op Groovy en biedt volledige controle over uitvoering via conditionele instructies en lussen.

Declaratieve Pipeline maakt automatisch Sandbox — een veilige omgeving voor het uitvoeren van Groovy-scripts. Dit beperkt toegang tot gevaarlijke methoden van Java en Groovy, wat cruciaal is voor bedrijfsomgevingen waar pipeline-beveiliging door de beheerder wordt gecontroleerd.

Structuur van Declarative Pipeline

Declarative Pipeline is gebaseerd op vier kernblokken: pipeline (hoofdblok), agent (aanduiding van agent), stages (reeks fasen) en post (acties na voltooiing). Elke stage bevat steps met build-opdrachten, en het post-blok definieert acties bij succes, mislukking of onstabiele build-status.

Het post-blok is bijzonder nuttig voor mobiele projecten — hierin kan het verzenden van meldingen naar Slack bij build-mislukking of archivering van IPA- en APK-artefacten na succesvolle voltooiing worden geconfigureerd. Jenkins voert post-acties gegarandeerd uit, zelfs als de pipeline handmatig is onderbroken.

groovy
// Declarative Pipeline voor iOS-applicatie
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 biedt het node-blok in plaats van agent en maakt gebruik van Groovy-constructies voor dynamische vertakking. Deze syntax is handig voor pipelines waarbij de set fasen afhangt van build-parameters of resultaten van vorige stappen.

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

Jenkinsfile: CI/CD-configuratie voor iOS-projecten

Voor iOS-projecten vereist Jenkinsfile een macOS-agent met geïnstalleerde Xcode, CocoaPods of Swift Package Manager en Fastlane. Een typische pipeline omvat fasen: installatie van afhankelijkheden, bouw, uitvoeren van tests, code-ondertekening en levering aan TestFlight of App Store.

Het belangrijkste kenmerk van iOS-builds in Jenkins is het beheer van certificaten en provisioning-profielen. Het wordt aanbevolen Fastlane Match te gebruiken voor automatische ophaling van certificaten uit de repository of de Jenkins Credentials Binding-plugin voor veilige opslag van sleutels.

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'
            }
        }
    }
}

Voor iOS unit-tests gebruikt u xcodebuild test met specificatie van de simulator. Jenkins ondersteunt publicatie van XCTest-rapporten via de JUnit-plugin — converteer .xcresult naar XML-formaat voor integratie van testresultaten in het build-dashboard.

Jenkinsfile: CI/CD-configuratie voor Android-projecten

Android-builds in Jenkins worden uitgevoerd op Linux-agents met geïnstalleerde Java JDK, Android SDK, Gradle en emulators. De pipeline omvat fasen: linter-controle, unit-tests, APK- of AAB-bouw, instrumentele tests op emulator en publicatie in Google Play Console.

Voor beheer van Android SDK gebruikt u sdkmanager in Jenkinsfile voor installatie van benodigde platforms en build-tools. Het wordt aanbevolen .gradle- en .android-mappen tussen builds te cachen om volgende uitvoeringen te versnellen.

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'
                }
            }
        }
    }
}

Instrumentele tests op Android vereisen een draaiende emulator. Jenkins ondersteunt de Android Emulator-plugin die automatisch een emulator maakt en start voor tests. Voor fysieke apparaten gebruikt u Firebase Test Lab — integratie is beschikbaar via de Google Cloud SDK-plugin.

Jenkins-plugins voor automatisering van builds

Het Jenkins-plugins-systeem is het belangrijkste voordeel van het platform. Meer dan 1800 plugins dekken alle CI/CD-fasen: van integratie met versiebeheersystemen tot implementatie in clouddiensten. Elke plugin voegt nieuwe stappen toe aan de pipeline en breidt de webinterface uit met extra configuratiepagina's.

Voor mobiele ontwikkeling is een set plugins voor credential-beheer verplicht: Credentials Binding voor opslag van App Store Connect-tokens en Google Play-serviceaccounts. De Xcode Integration-plugin voegt build-stappen voor iOS-applicaties toe vanuit de Jenkins-UI.

PluginDoelPlatform
Git IntegrationKlonen van repository, werken met branches en Pull RequestiOS, Android
Gradle PluginUitvoeren van Gradle-taken voor Android-bouw met rapportpublicatieAndroid
Xcode IntegrationBouwen van iOS-projecten zonder JenkinsfileiOS
Docker PipelineUitvoeren van builds in Docker-containers met geïsoleerde omgevingiOS, Android
Slack NotificationMeldingen over build-status in Slack-kanaleniOS, Android

De Docker Pipeline-plugin maakt het mogelijk elke build-fase in een aparte container uit te voeren, wat reproduceerbaarheid van de omgeving garandeert en het probleem van omgevingsverschillen elimineert. Voor Android-builds gebruikt u images met vooraf geïnstalleerde Android SDK van de Gradle-community.

Jenkins vs Travis CI: vergelijking voor mobiele teams

De keuze tussen Jenkins en Travis CI hangt af van teamgrootte, budget en infrastructuurvereisten. Jenkins is een self-hosted oplossing met volledige controle, die een dedicated server en beheerder vereist. Travis CI is een clouddienst met betaling per gebruik, die geen serverbeheer vereist.

Voor startups en kleine teams heeft Travis CI de voorkeur — nul infrastructuurkosten, eenvoudige integratie met GitHub en kant-en-klare builds voor iOS en Android. Voor Enterprise-projecten biedt Jenkins voordelen: eigen runners op macOS, naleving van bedrijfsbeveiligingsbeleid en fijnafstemming van de pipeline via Jenkinsfile.

Volgens Stack Overflow Survey 2025 gebruikt 42% van de professionele ontwikkelaars Jenkins tegenover 12% voor Travis CI. Travis CI blijft echter populair in de Open Source-gemeenschap vanwege het gratis plan voor openbare repositories en de minimale instapdrempel.

Voordelen van Jenkins in CI/CD-processen

Jenkins biedt een reeks voordelen die het de CI/CD-standaard maken voor mobiele ontwikkeling. De gratis MIT-licentie maakt onbeperkt gebruik van de server in commerciële projecten mogelijk, en de open source-code garandeert onafhankelijkheid van de leverancier en de mogelijkheid van beveiligingsaudit.

De Master-Agent-architectuur zorgt voor horizontale schaalbaarheid — het toevoegen van een nieuwe agent verhoogt de doorvoercapaciteit van pipelines lineair. Jenkins ondersteunt dynamische agents in Kubernetes via Jenkins X, wat automatisch creëren en vernietigen van builders mogelijk maakt naar behoefte.

Het plugin-ecosysteem omvat alle moderne tools: Docker, Kubernetes, Fastlane, SonarQube, GitLab, Bitbucket. Bij afwezigheid van een kant-en-klare plugin kunt u een eigen extensie in Java schrijven of Pipeline Shared Libraries gebruiken voor herbruik van code tussen projecten.

Veelgestelde vragen

Wat is Jenkins in mobiele ontwikkeling?

Jenkins is een Open Source CI/CD-server voor automatisering van bouw, testen en levering van iOS- en Android-applicaties. Het draait op Java, ondersteunt gedistribueerde builds via Master-Agent-architectuur en wordt geconfigureerd via webinterface of Jenkinsfile in het project-repository.

Waarin verschilt Jenkins van andere CI/CD-systemen?

Jenkins onderscheidt zich door zelfbeheerde infrastructuur en het pluginsysteem. In tegenstelling tot Travis CI of GitHub Actions vereist Jenkins installatie op eigen server, maar biedt volledige controle over de build-omgeving, beveiliging en toegangsbeleid voor bedrijfsprojecten.

Wat is Jenkins Pipeline en hoe werkt het?

Jenkins Pipeline is de definitie van het CI/CD-proces in de vorm van Groovy-code opgeslagen in Jenkinsfile. De Pipeline bestaat uit fasen (stages) en stappen (steps) die bouw, testen en implementatie beschrijven. Het ondersteunt twee syntaxen: Declarative voor eenvoudige scenario's en Scripted voor complexe.

Welke Jenkins-plugins zijn nodig voor mobiele ontwikkeling?

Voor iOS zijn Xcode Integration en Keychain Manager verplicht. Voor Android — Gradle Plugin en Android Emulator. Voor beide platforms: Git Integration, Credentials Binding, Docker Pipeline en Slack Notification voor meldingen over build-status.

Hoe configureer ik Jenkins voor iOS- en Android-builds?

Installeer Jenkins op een server, voeg een macOS-agent voor iOS en een Linux-agent voor Android met geïnstalleerde SDK toe. Maak een Jenkinsfile in de hoofdmap van de repository met beschrijving van de build-fasen. Gebruik voor iOS Fastlane voor code-ondertekening, voor Android Gradle-taken met caching van afhankelijkheden.

Samenvatting

  • Jenkins — Open Source CI/CD-server op Java voor automatisering van bouw, testen en levering van mobiele applicaties
  • Master-Agent-architectuur zorgt voor gedistribueerde builds op macOS voor iOS en Linux voor Android
  • Jenkins Pipeline beschrijft CI/CD-proces als code in Jenkinsfile met declaratieve of script Groovy-syntax
  • Plugins breiden functionaliteit uit — meer dan 1800 modules voor Git, Docker, Fastlane en andere tools
  • Jenkinsfile voor iOS omvat pod-installatie, build in Xcode, tests en levering aan TestFlight via Fastlane
  • Jenkinsfile voor Android omvat linter, unit-tests, APK-build en tests op emulator
  • Voor startups wordt cloud Travis CI aanbevolen, voor Enterprise-projecten Jenkins met volledige infrastructuurcontrole

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook