Jenkins — apa itu, arsitektur sistem dan konfigurasi server CI/CD

Penulis: IT Sectr Diterbitkan: 2026-04-13 Waktu membaca: 10 mnt

Jenkins adalah server CI/CD sumber terbuka yang mengotomatiskan pembuatan, pengujian, dan pengiriman aplikasi mobile. Berbeda dengan solusi cloud, Jenkins diimplementasikan di infrastruktur sendiri dan dikonfigurasi melalui antarmuka web atau kode. Menurut data CloudBees, 2025, lebih dari 1,6 juta tim menggunakan Jenkins untuk proses CI/CD. Sistem ini mendukung build terdistribusi melalui arsitektur Master-Agent dan lebih dari 1800 plugin untuk integrasi dengan alat pengembangan.

Poin Utama

  • Jenkins — server CI/CD Open Source berbasis Java untuk otomatisasi pembuatan dan pengiriman aplikasi
  • Pipeline — definisi proses CI/CD sebagai kode dalam Jenkinsfile dengan sintaks deklaratif atau skrip
  • Master-Agent — arsitektur dengan pembagian tugas antara node utama dan agen untuk build paralel
  • Plugin — lebih dari 1800 modul untuk integrasi dengan Git, Docker, Fastlane, XCTest dan Gradle
  • Jenkinsfile — file konfigurasi di repositori yang menentukan langkah pembuatan, pengujian, dan deployment

Apa itu Jenkins dan mengapa diperlukan dalam pengembangan mobile

Jenkins adalah server CI/CD sumber terbuka yang ditulis dalam Java untuk mengotomatiskan pembuatan, pengujian, dan pengiriman perangkat lunak. Dalam konteks pengembangan mobile, Jenkins memungkinkan tim untuk secara otomatis membuat aplikasi iOS dan Android, menjalankan tes unit dan UI, menandatangani build, dan mengirimkannya ke App Store atau Google Play tanpa operasi manual.

Kebutuhan akan Jenkins muncul ketika proyek melampaui build lokal dan memerlukan integrasi kode secara teratur dari beberapa pengembang. Pembuatan manual setiap commit memakan waktu dan rentan terhadap kesalahan — Jenkins mengatasi masalah ini dengan menjalankan pipeline otomatis pada setiap perubahan di repositori.

Menurut laporan JetBrains Developer Ecosystem 2025, 54% tim mobile menggunakan Jenkins sebagai platform CI/CD utama. Sistem ini mendukung bahasa dan platform apa pun berkat arsitektur plugin — untuk Android tersedia Gradle dan SDK Manager, untuk iOS — Xcode Integration dan Keychain Manager.

Gunakan Jenkins dalam proyek yang memerlukan kontrol penuh atas infrastruktur build, kustomisasi setiap langkah proses CI/CD, dan integrasi dengan sistem keamanan perusahaan.

Arsitektur Jenkins: Master, Agen dan cara kerja Pipeline

Arsitektur Jenkins dibangun berdasarkan model Master-Agent. Server Master mengelola konfigurasi, penjadwalan tugas, dan antarmuka web, sementara agen menjalankan build aktual pada mesin khusus atau sementara. Arsitektur ini memungkinkan pembuatan simultan aplikasi iOS di agen macOS dan aplikasi Android di agen Linux dari satu server Master.

Master dan Agen di Jenkins

Node Master Jenkins menyimpan semua pengaturan, plugin, dan riwayat build di direktori utama $JENKINS_HOME. Agen terhubung ke Master melalui SSH, JNLP, atau WebSocket dan menerima tugas dari antrian. Untuk pengembangan mobile, disarankan mengalokasikan agen macOS terpisah untuk build iOS dan agen Linux untuk build Android dengan SDK dan alat terinstal.

Setiap agen dapat berupa server permanen atau kontainer Docker dinamis. Menurut dokumentasi CloudBees, distribusi build ke 5 agen mengurangi total waktu pipeline CI/CD sebesar 70% pada 10 tugas paralel.

Pipeline sebagai kode

Jenkins Pipeline adalah definisi seluruh proses CI/CD dalam bentuk kode yang disimpan di repositori bersama proyek. Pipeline dijelaskan dalam Jenkinsfile dan mendukung dua sintaks: Declarative (terstruktur, dengan blok yang telah ditentukan) dan Scripted (fleksibel, berbasis Groovy dengan kontrol penuh alur eksekusi).

Sintaks deklaratif direkomendasikan untuk sebagian besar proyek mobile karena memberikan keterbacaan dan prediktabilitas. Scripted Pipeline cocok untuk skenario kompleks dengan tahapan paralel dinamis, penanganan kesalahan kustom, dan logika kondisional berdasarkan variabel lingkungan.

Jenkins Pipeline: sintaks Declarative dan Scripted

Jenkins Pipeline mendukung dua sintaks yang menentukan cara mendeskripsikan langkah-langkah proses CI/CD. Sintaks Declarative menggunakan struktur blok dengan kata kunci pipeline, stages, stage, dan steps, membuatnya intuitif bagi pengguna baru. Sintaks Scripted berbasis Groovy dan memberikan kontrol penuh atas eksekusi melalui pernyataan kondisional dan perulangan.

Pipeline deklaratif secara otomatis membuat Sandbox — lingkungan aman untuk menjalankan skrip Groovy. Ini membatasi akses ke metode berbahaya Java dan Groovy, yang sangat penting untuk lingkungan perusahaan di mana keamanan pipeline dikendalikan oleh administrator.

Struktur Pipeline Deklaratif

Pipeline deklaratif dibangun di atas empat blok utama: pipeline (blok akar), agent (penunjukan agen), stages (urutan tahapan), dan post (tindakan setelah selesai). Setiap stage berisi steps dengan perintah build, dan blok post menentukan tindakan saat sukses, gagal, atau status build tidak stabil.

Blok post sangat berguna untuk proyek mobile — di dalamnya dapat dikonfigurasi pengiriman notifikasi ke Slack saat build gagal atau pengarsipan artefak IPA dan APK setelah berhasil. Jenkins menjalankan tindakan post secara terjamin, bahkan jika pipeline dihentikan secara manual.

groovy
// Pipeline Deklaratif untuk aplikasi iOS
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 menyediakan blok node sebagai pengganti agent dan memungkinkan penggunaan konstruksi Groovy untuk percabangan dinamis. Sintaks ini nyaman untuk pipeline di mana kumpulan tahapan tergantung pada parameter build atau hasil langkah sebelumnya.

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

Jenkinsfile: konfigurasi CI/CD untuk proyek iOS

Untuk proyek iOS, Jenkinsfile memerlukan agen macOS dengan Xcode, CocoaPods atau Swift Package Manager, dan Fastlane terinstal. Pipeline tipikal meliputi tahapan: instalasi dependensi, build, menjalankan tes, penandatanganan kode, dan pengiriman ke TestFlight atau App Store.

Fitur utama build iOS di Jenkins adalah pengelolaan sertifikat dan profil provisioning. Disarankan menggunakan Fastlane Match untuk pengambilan sertifikat otomatis dari repositori atau plugin Jenkins Credentials Binding untuk penyimpanan kunci yang aman.

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

Untuk tes unit iOS, gunakan xcodebuild test dengan menentukan simulator. Jenkins mendukung publikasi laporan XCTest melalui plugin JUnit — konversikan .xcresult ke format XML untuk menyematkan hasil tes di dashboard build.

Jenkinsfile: konfigurasi CI/CD untuk proyek Android

Build Android di Jenkins dijalankan pada agen Linux dengan Java JDK, Android SDK, Gradle, dan emulator terinstal. Pipeline meliputi tahapan: pemeriksaan linter, tes unit, build APK atau AAB, tes instrumental pada emulator, dan publikasi di Google Play Console.

Untuk mengelola Android SDK, gunakan sdkmanager di Jenkinsfile untuk menginstal platform dan build-tools yang diperlukan. Disarankan menyimpan cache direktori .gradle dan .android antar build untuk mempercepat eksekusi berikutnya.

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

Tes instrumental di Android memerlukan emulator yang berjalan. Jenkins mendukung plugin Android Emulator yang secara otomatis membuat dan menjalankan emulator sebelum tes. Untuk perangkat fisik, gunakan Firebase Test Lab — integrasi tersedia melalui plugin Google Cloud SDK.

Plugin Jenkins untuk otomatisasi build

Sistem plugin Jenkins adalah keunggulan utama platform. Lebih dari 1800 plugin mencakup semua tahapan CI/CD: dari integrasi dengan sistem kontrol versi hingga deployment ke layanan cloud. Setiap plugin menambahkan langkah baru ke pipeline dan memperluas antarmuka web dengan halaman konfigurasi tambahan.

Untuk pengembangan mobile, seperangkat plugin manajemen kredensial wajib: Credentials Binding untuk menyimpan token App Store Connect dan akun layanan Google Play. Plugin Xcode Integration menambahkan langkah build aplikasi iOS dari UI Jenkins.

PluginTujuanPlatform
Git IntegrationMeng-clone repositori, bekerja dengan cabang dan Pull RequestiOS, Android
Gradle PluginMenjalankan tugas Gradle untuk build Android dengan publikasi laporanAndroid
Xcode IntegrationBuild proyek iOS tanpa JenkinsfileiOS
Docker PipelineMenjalankan build dalam kontainer Docker dengan lingkungan terisolasiiOS, Android
Slack NotificationNotifikasi status build di saluran SlackiOS, Android

Plugin Docker Pipeline memungkinkan menjalankan setiap tahap build dalam kontainer terpisah, menjamin reprodusibilitas lingkungan dan menghilangkan masalah perbedaan lingkungan. Untuk build Android, gunakan image dengan Android SDK terinstal dari komunitas Gradle.

Jenkins vs Travis CI: perbandingan untuk tim mobile

Pilihan antara Jenkins dan Travis CI tergantung pada ukuran tim, anggaran, dan persyaratan infrastruktur. Jenkins adalah solusi self-hosted dengan kontrol penuh, memerlukan server khusus dan administrator. Travis CI adalah layanan cloud dengan bayar per penggunaan, tidak memerlukan pengelolaan server.

Untuk startup dan tim kecil, Travis CI lebih disukai — biaya infrastruktur nol, integrasi sederhana dengan GitHub, dan build siap pakai untuk iOS dan Android. Untuk proyek Enterprise, Jenkins memberikan keunggulan: runner sendiri di macOS, kepatuhan terhadap kebijakan keamanan perusahaan, dan konfigurasi pipeline yang mendetail melalui Jenkinsfile.

Menurut Stack Overflow Survey 2025, Jenkins digunakan oleh 42% pengembang profesional dibandingkan 12% untuk Travis CI. Namun Travis CI tetap populer di komunitas Open Source berkat paket gratis untuk repositori publik dan ambang masuk yang minimal.

Keunggulan Jenkins dalam proses CI/CD

Jenkins memberikan serangkaian keunggulan yang menjadikannya standar CI/CD untuk pengembangan mobile. Lisensi MIT gratis memungkinkan penggunaan server tanpa batasan di proyek komersial, dan kode sumber terbuka menjamin independensi dari vendor dan kemungkinan audit keamanan.

Arsitektur Master-Agent menyediakan skalabilitas horizontal — penambahan agen baru meningkatkan kapasitas pipeline secara linear. Jenkins mendukung agen dinamis di Kubernetes melalui Jenkins X, memungkinkan pembuatan dan penghancuran builder secara otomatis sesuai kebutuhan.

Ekosistem plugin mencakup semua alat modern: Docker, Kubernetes, Fastlane, SonarQube, GitLab, Bitbucket. Jika tidak ada plugin siap pakai, Anda dapat menulis ekstensi sendiri di Java atau menggunakan Pipeline Shared Libraries untuk penggunaan ulang kode antar proyek.

Pertanyaan yang Sering Diajukan

Apa itu Jenkins dalam pengembangan mobile?

Jenkins adalah server CI/CD Open Source untuk mengotomatiskan pembuatan, pengujian, dan pengiriman aplikasi iOS dan Android. Berjalan di Java, mendukung build terdistribusi melalui arsitektur Master-Agent, dan dikonfigurasi melalui antarmuka web atau Jenkinsfile di repositori proyek.

Apa perbedaan Jenkins dengan sistem CI/CD lainnya?

Jenkins menonjol dengan infrastruktur yang dikelola sendiri dan sistem plugin. Berbeda dengan Travis CI atau GitHub Actions, Jenkins memerlukan instalasi di server sendiri, tetapi memberikan kontrol penuh atas lingkungan build, keamanan, dan kebijakan akses untuk proyek perusahaan.

Apa itu Jenkins Pipeline dan bagaimana cara kerjanya?

Jenkins Pipeline adalah definisi proses CI/CD dalam bentuk kode Groovy yang disimpan di Jenkinsfile. Pipeline terdiri dari tahapan (stages) dan langkah (steps) yang mendeskripsikan build, pengujian, dan deployment. Mendukung dua sintaks: Declarative untuk skenario sederhana dan Scripted untuk skenario kompleks.

Plugin Jenkins apa yang diperlukan untuk pengembangan mobile?

Untuk iOS wajib Xcode Integration dan Keychain Manager. Untuk Android — Gradle Plugin dan Android Emulator. Untuk kedua platform: Git Integration, Credentials Binding, Docker Pipeline, dan Slack Notification untuk notifikasi status build.

Bagaimana mengonfigurasi Jenkins untuk build iOS dan Android?

Instal Jenkins di server, tambahkan agen macOS untuk iOS dan agen Linux untuk Android dengan SDK terinstal. Buat Jenkinsfile di root repositori dengan deskripsi tahapan build. Untuk iOS gunakan Fastlane untuk penandatanganan kode, untuk Android — tugas Gradle dengan caching dependensi.

Kesimpulan

  • Jenkins — server CI/CD Open Source berbasis Java untuk otomatisasi pembuatan, pengujian, dan pengiriman aplikasi mobile
  • Arsitektur Master-Agent menyediakan build terdistribusi di macOS untuk iOS dan Linux untuk Android
  • Jenkins Pipeline mendeskripsikan proses CI/CD sebagai kode di Jenkinsfile dengan sintaks deklaratif atau skrip Groovy
  • Plugin memperluas fungsionalitas — lebih dari 1800 modul untuk Git, Docker, Fastlane, dan alat lainnya
  • Jenkinsfile untuk iOS meliputi instalasi pod, build di Xcode, tes, dan pengiriman ke TestFlight melalui Fastlane
  • Jenkinsfile untuk Android meliputi linter, tes unit, build APK, dan tes di emulator
  • Untuk startup direkomendasikan Travis CI cloud, untuk proyek Enterprise — Jenkins dengan kontrol infrastruktur penuh

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga