CI/CD (Continuous Integration / Continuous Delivery) adalah praktik membangun, menguji, dan mengirimkan aplikasi secara otomatis pada setiap perubahan kode. Menurut Statista (2025), 80% tim pengembangan seluler menggunakan CI/CD dalam pekerjaan mereka. Artikel ini membahas alat CI populer, Fastlane untuk otomatisasi build seluler, serta Canary Release dan Feature Flags.
Poin Penting
Continuous Integration adalah fondasi otomatisasi CI/CD untuk aplikasi seluler. Ini adalah praktik di mana setiap pengembang menggabungkan kode mereka ke repositori bersama beberapa kali sehari. Setelah setiap push, server CI secara otomatis membangun proyek dan menjalankan pengujian. Jika pengujian gagal, build dianggap rusak dan tim segera memperbaiki masalah. CI mencegah situasi «berfungsi di mesin saya» di mana kode satu pengembang merusak kode pengembang lain.
Build Pipeline — serangkaian langkah yang dijalankan pada setiap push: linting kode → pengujian unit → build debug APK/IPA → pengujian integrasi → build release. Setiap langkah hanya berjalan setelah langkah sebelumnya berhasil. Artefak build — APK, IPA, AAB, laporan pengujian — disimpan dan tersedia untuk diunduh.
Continuous Delivery — kode dibangun dan diuji secara otomatis, tetapi keputusan untuk merilis ke produksi diambil oleh manusia. Continuous Deployment — setiap build yang berhasil secara otomatis dirilis ke produksi. Untuk aplikasi seluler, CD (pengiriman ke toko) melalui TestFlight atau Internal Testing lebih umum, karena keputusan publikasi akhir diambil oleh pengembang atau manajer. Staging — lingkungan sedekat mungkin dengan produksi, digunakan untuk menguji build sebelum rilis.
GitHub Actions adalah sistem CI/CD bawaan untuk mengotomatiskan aplikasi seluler di GitHub. Actions menggunakan konfigurasi YAML (.github/workflows) untuk mendefinisikan pipeline. Tindakan siap pakai tersedia untuk pengembangan seluler: actions/setup-java, gradle-build-action untuk Android, xcodebuild-action untuk iOS. GitHub Actions menyediakan 2000 menit gratis per bulan untuk repositori pribadi.
Contoh: workflow Android mencakup checkout kode, pengaturan JDK 17, caching dependensi Gradle, menjalankan lint dan pengujian unit, build APK dan unggah artefak. Untuk iOS — checkout, pengaturan Xcode, pod install, menjalankan XCTest, pengarsipan dan ekspor IPA. GitHub Actions terintegrasi dengan GitHub Releases, Slack dan Telegram untuk notifikasi.
GitLab CI adalah sistem CI/CD bawaan di GitLab, dikonfigurasi melalui .gitlab-ci.yml. GitLab CI menggunakan runner — agen yang menjalankan tugas. Untuk pengembangan seluler, Anda dapat menggunakan runner bersama (Linux untuk Android) atau runner sendiri (macOS untuk iOS). GitLab CI mendukung tugas paralel, artefak, lingkungan, dan persetujuan manual untuk rilis produksi.
Bitrise adalah platform CI/CD yang khusus dalam otomatisasi aplikasi seluler. Bitrise menawarkan Steps siap pakai untuk Android, iOS, Flutter dan React Native: Gradle Runner, Xcode Archive, Flutter Test, CocoaPods Install. Bitrise secara otomatis mengonfigurasi penandatanganan kode untuk iOS (melalui Codesigndoc) dan menyediakan mesin virtual dengan Xcode, Android SDK, Flutter dan alat lain yang sudah terinstal.
Keunggulan Bitrise: pengaturan mudah melalui editor Workflow visual, dukungan untuk build paralel, integrasi dengan Firebase Test Lab, App Store Connect dan Google Play Console. Bitrise menyediakan 90 menit gratis per bulan untuk proyek pribadi. Di IT Sectr kami menggunakan Bitrise untuk semua proyek seluler — ini sangat menyederhanakan CI/CD dibandingkan dengan pengaturan manual GitHub Actions.
| Kriteria | GitHub Actions | GitLab CI | Bitrise | CircleCI |
|---|---|---|---|---|
| Spesialisasi | Umum | Umum | Seluler | Umum |
| macOS untuk iOS | Ya (macOS runner) | Runner sendiri | Ya (bawaan) | Ya (macOS) |
| Batas gratis | 2000 menit/bulan | 400 menit/bulan | 90 menit/bulan | 6000 menit/bulan |
| Integrasi Fastlane | Melalui run script | Melalui run script | Step siap pakai | Melalui run script |
| Penandatanganan kode | Pengaturan manual | Pengaturan manual | Otomatis | Melalui Fastlane |
| Build paralel | Ya | Ya | Ya | Ya |
Fastlane adalah alat otomatisasi aplikasi seluler untuk iOS dan Android, ditulis dalam Ruby. Fastlane terdiri dari sistem tindakan siap pakai (200+) dan DSL untuk mendeskripsikan skenario melalui Fastfile. Fastlane menyelesaikan tugas yang dilakukan setiap pengembang seluler secara manual: penandatanganan kode, pembuatan tangkapan layar, unggah ke TestFlight dan Google Play, manajemen sertifikat dan profil provisioning.
Lane — skenario bernama di Fastfile. Contoh: lane :release do — rantai tindakan untuk merilis versi. Match — alat untuk menyimpan dan menyinkronkan sertifikat dan profil provisioning secara aman melalui repositori Git terenkripsi. Gym — membangun dan mengarsipkan aplikasi iOS (pembungkus di atas xcodebuild). Pilot — mengunggah dan mengelola build di TestFlight. Deliver — mengunggah aplikasi dan metadata ke App Store Connect. Snapshot — pembuatan tangkapan layar otomatis di semua bahasa. Screengrab — pembuatan tangkapan layar otomatis untuk Android.
Contoh Fastfile untuk Android: lane :beta memanggil gradle (assembleRelease), kemudian firebase_app_distribution untuk distribusi ke penguji. Untuk iOS: lane :beta memanggil match (unduh sertifikat), gym (pengarsipan) dan pilot (unggah ke TestFlight). Fastlane dapat dijalankan secara lokal dan di server CI — menjadikannya alat universal di proyek seluler mana pun.
Canary Release adalah strategi otomatisasi CI/CD untuk meluncurkan versi baru aplikasi ke sebagian kecil pengguna (1–5%) sebelum rilis penuh. Di Google Play Console ini diimplementasikan melalui Staged Rollout: Anda merilis pembaruan ke 5% audiens, memantau crash dan metrik, dan meningkatkan persentase jika tidak ada masalah. Di App Store Connect — melalui Phased Release for Automatic Updates.
A/B Testing — perbandingan dua versi dari satu fitur pada kelompok pengguna acak. Dalam pengembangan seluler, pengujian A/B dilakukan melalui Feature Flags, Firebase Remote Config atau logika sisi server. Canary Release dan pengujian A/B meminimalkan risiko saat meluncurkan fitur baru.
Feature Flag (Feature Toggle) — aktivasi fungsionalitas bersyarat tanpa menerapkan kode baru. Feature Flag adalah pemeriksaan dalam kode: if (featureFlag.isEnabled()) { /* kode baru */ } else { /* kode lama */ }. Bendera dikelola melalui layanan: LaunchDarkly, Split.io, Firebase Remote Config. Feature Flags memungkinkan pengembang menggabungkan kode ke main meskipun fitur tersebut belum siap untuk pengguna.
LaunchDarkly — platform manajemen Feature Flags paling populer. LaunchDarkly menyediakan SDK untuk iOS, Android, Flutter dan React Native. Anda dapat mengaktifkan fitur untuk pengguna, segmen, wilayah tertentu atau persentase audiens. Feature Flags juga digunakan sebagai kill switch — menonaktifkan fitur bermasalah secara instan tanpa merilis versi baru aplikasi.
Pertanyaan Umum
Mulailah dengan GitHub Actions — jika kode Anda di GitHub. Actions gratis untuk repositori publik, memiliki dukungan bawaan untuk Android dan iOS (macOS runner), dan ekosistem besar tindakan siap pakai. Untuk spesialisasi seluler — Bitrise.
Tidak, layanan CI (GitHub Actions, Bitrise, CircleCI) menyediakan macOS runner. Anda membayar per menit penggunaan. Untuk debugging Fastlane lokal diperlukan Mac, tetapi CI dapat berjalan di cloud.
Canary Release — meluncurkan versi baru ke subset pengguna untuk memeriksa stabilitas. Pengujian A/B — perbandingan dua varian dari satu fitur untuk memilih yang lebih baik. Canary tentang keandalan, A/B tentang konversi.
Fastlane tidak wajib tetapi sangat disarankan. Tanpa Fastlane Anda harus menjalankan xcodebuild secara manual, mengelola sertifikat dan mengunggah build melalui antarmuka web. Fastlane mengotomatiskan semua tugas ini dengan satu perintah.
Match adalah alat Fastlane untuk mengelola sertifikat Code Signing iOS. Match menyimpan sertifikat dan profil provisioning di repositori Git terenkripsi dan menyinkronkannya di antara semua pengembang dan server CI.
Ringkasan
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.