CircleCI: dasar-dasar, orbs dan integrasi berkelanjutan

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

CircleCI — adalah platform CI/CD cloud untuk otomatisasi pembangunan, pengujian, dan penyebaran perangkat lunak, termasuk aplikasi mobile untuk iOS dan Android. Menurut CircleCI, 2024, platform ini memproses lebih dari 30 juta build setiap bulan dan menawarkan arsitektur unik berdasarkan orbs — paket konfigurasi siap pakai untuk alat-alat populer.

Poin Utama

  • CircleCI — platform CI/CD cloud dengan dukungan untuk build mobile, Docker, dan lingkungan macOS
  • Orb — paket konfigurasi YAML siap pakai yang menyederhanakan pengaturan alat dan layanan populer
  • Executor — lingkungan eksekusi job: gambar Docker, Linux VM, macOS, atau Windows
  • Parallelism — pembagian tes ke beberapa kontainer untuk eksekusi paralel
  • Caching menyimpan dependensi antar proses, mengurangi waktu build 3–5 kali lipat

Apa itu CircleCI?

CircleCI — adalah platform CI/CD cloud yang didirikan pada tahun 2011. Sistem ini memungkinkan deskripsi pipeline dalam file YAML .circleci/config.yml dan menjalankannya dalam kontainer terisolasi atau mesin virtual. CircleCI mendukung semua bahasa dan platform populer, termasuk Android, iOS, Flutter, dan React Native.

Untuk pengembangan mobile, CircleCI menawarkan executor macOS untuk build iOS dengan Xcode terinstal, executor Linux untuk Android dengan Android SDK, serta caching Gradle dan CocoaPods. Fitur utama — orbs, yang memungkinkan menghubungkan konfigurasi siap pakai dengan satu baris: orb: android, orb: ios, orb: flutter. CircleCI secara otomatis mendeteksi jenis proyek dan menawarkan konfigurasi template saat pertama kali menghubungkan repositori.

Platform ini mendukung akses SSH ke kontainer yang berjalan untuk debugging — fitur yang berguna saat menganalisis build yang gagal. CircleCI CLI memungkinkan validasi dan eksekusi konfigurasi secara lokal, mengelola orbs, dan melihat log. Platform ini terintegrasi dengan GitHub, GitHub Enterprise, Bitbucket, dan GitLab melalui sistem webhooks.

Arsitektur CircleCI: Orbs, Executors dan Contexts

Arsitektur CircleCI mencakup tiga tingkat: Pipeline, Workflow, dan Job. Pipeline — adalah proses utama, dipicu saat commit. Pipeline terdiri dari Workflows — graf dari Jobs yang dapat dijalankan secara sekuensial atau paralel. Setiap Job dijalankan pada Executor — lingkungan dengan gambar tertentu. Workflow dapat mencakup approval gates — konfirmasi manual sebelum penyebaran.

Orbs — adalah paket konfigurasi YAML yang dapat digunakan kembali, didistribusikan melalui CircleCI Orb Registry. Orb dapat berisi jobs, commands, executors, dan contoh. Orbs populer: android, ios, flutter, firebase, slack. Misalnya, menghubungkan android orb menggantikan 50+ baris konfigurasi dengan satu baris. CircleCI CLI memungkinkan pembuatan, pengujian, dan publikasi orbs kustom untuk standarisasi pipeline di organisasi.

Jenis Executor

ExecutorCocok untukBuild
DockerAndroid, BackendKontainer Linux
macOSiOS, macOSmacOS VM dengan Xcode
MachineDocker-in-DockerUbuntu VM
Windows.NET, WinUIWindows Server

Contexts — adalah kumpulan variabel lingkungan bernama, tersedia di tingkat organisasi. Misalnya, konteks app-store-credentials berisi Apple ID dan kata sandi untuk publikasi di App Store. Ini menyederhanakan pengelolaan rahasia antar proyek tanpa duplikasi.

Konfigurasi CircleCI untuk proyek Android dan iOS

Untuk proyek Android, CircleCI menggunakan gambar Docker cibuilds/android dengan Android SDK. Workflow tipikal mencakup: checkout, instalasi JDK, caching Gradle, build, menjalankan tes. Untuk iOS diperlukan executor macOS dengan Xcode dan konfigurasi code signing. Pada koneksi pertama, CircleCI secara otomatis mendeteksi jenis proyek dan menghasilkan konfigurasi dasar dengan pengaturan yang disarankan.

Untuk proyek Flutter, CircleCI menyediakan orb circleci/flutter, yang mencakup executor dengan Flutter SDK terinstal untuk Linux dan macOS. Orb mendukung build untuk kedua platform, caching pub-cache, dan menjalankan tes. Konfigurasi hanya sebatas menentukan versi Flutter dan perintah build. Untuk versi kustom Flutter atau Dart, dapat menggunakan gambar Docker dengan SDK yang diperlukan. Flutter orb juga mendukung opsi lanjutan — misalnya, analisis kode melalui dart analyze sebelum build.

Android orb — mulai cepat

Android orb dari CircleCI menyediakan jobs siap pakai: build-and-test, deploy-to-play-store. Orb secara otomatis mengonfigurasi lingkungan, caching, dan penandatanganan. Setelah menghubungkan orb, cukup menentukan versi SDK dan perintah build.

Build iOS dengan executor macOS

Untuk build iOS, executor ditentukan: macos dengan versi xcode. CircleCI menyediakan gambar dengan Xcode 14, 15, dan 16. Setelah checkout, kode dikompilasi melalui xcodebuild, tes dijalankan di simulator. Code signing dikonfigurasi melalui fastlane match atau instalasi sertifikat manual.

Caching dan eksekusi paralel

Caching — elemen kunci kinerja CircleCI. Mekanisme cache menyimpan direktori antar proses workflow berdasarkan kunci. Untuk Gradle, ~/.gradle di-cache, untuk CocoaPods — Pods/, untuk npm/SPM — node_modules/.build. Saat file lock berubah, cache diperbarui secara otomatis. CircleCI mendukung kebijakan terpisah: save_cache dapat ditunda (when: always), sedangkan restore_cache bersifat wajib.

Parallelism dalam kombinasi dengan resource class memungkinkan penyesuaian kinerja build secara presisi. Resource class menentukan jumlah CPU dan RAM untuk kontainer: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB), dan large (4 CPU, 8 GB). Untuk build iOS dengan Xcode, disarankan menggunakan executor macOS dengan resource class medium atau larger — kompilasi kode Swift membutuhkan sumber daya yang signifikan.

Parallelism membagi tes ke beberapa kontainer, mengurangi waktu eksekusi. Misalnya: parallelism: 4 menjalankan tes di 4 kontainer paralel. CircleCI secara otomatis mendistribusikan file tes antar kontainer. Perintah circleci tests glob mengumpulkan daftar tes, dan circleci tests split mendistribusikannya secara merata.

Contoh caching Gradle

yaml
- restore_cache:
    keys:
      - v1-gradle-{{ checksum "build.gradle" }}
      - v1-gradle-

- run: ./gradlew assembleDebug

- save_cache:
    key: v1-gradle-{{ checksum "build.gradle" }}
    paths:
      - ~/.gradle/caches
      - ~/.gradle/wrapper

Contoh konfigurasi .circleci/config.yml

Mari kita lihat konfigurasi CircleCI lengkap untuk proyek Android dengan dua job: build dan test. Konfigurasi mencakup Docker executor dengan Android SDK, caching Gradle, dan eksekusi tes paralel. Artifacts disimpan untuk diunduh. Workflow build-and-test menjalankan kedua job pada setiap push ke branch utama.

yaml
version: 2.1

orbs:
  android: circleci/android@2.5.0

jobs:
  build:
    executor: android/default
    steps:
      - checkout
      - android/restore-gradle-cache
      - run: ./gradlew assembleRelease
      - android/save-gradle-cache
      - store_artifacts:
          path: app/build/outputs/apk/release
      - store_test_results:
          path: app/build/reports/tests

  test:
    executor: android/default
    parallelism: 4
    steps:
      - checkout
      - android/restore-gradle-cache
      - run:
          command: |
            cd app
            ./gradlew test

workflows:
  version: 2
  build-and-test:
    jobs:
      - build
      - test

Orbs: solusi siap pakai untuk CI/CD

Saat memilih antara CircleCI dan alternatif — jika tim menggunakan GitHub, GitHub Actions mungkin menjadi pilihan yang lebih sederhana. CircleCI lebih disukai untuk tim yang membutuhkan parallel test execution yang fleksibel, kustomisasi lingkungan executor, dan statistik build yang terperinci. CircleCI Insights menyediakan dasbor dengan metrik kinerja pipeline: waktu build rata-rata, tren, dan hambatan. Insights membantu mengidentifikasi job yang berjalan lama dan mengoptimalkannya. CircleCI API memungkinkan pengelolaan pipeline secara terprogram, menjalankan build, dan mendapatkan metrik.

Untuk bekerja dengan rahasia secara aman, CircleCI mendukung Contexts — kumpulan variabel lingkungan bernama di tingkat organisasi. Contexts dilindungi dengan akses berbasis peran: hanya tim tertentu yang dapat menggunakan konteks tertentu. Misalnya, konteks production-deploy berisi kunci App Store Connect dan hanya tersedia untuk pengembang utama. Dalam kombinasi dengan approval gates, ini membentuk sistem keamanan CI/CD yang lengkap.

CircleCI Orb Registry berisi ratusan paket siap pakai untuk berbagai tugas CI/CD. Untuk pengembangan mobile, orbs kunci meliputi: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution. Setiap orb memiliki versi dan dokumentasi. Orbs dapat bersifat publik (dapat diakses semua orang) dan privat (hanya untuk organisasi Anda).

Penggunaan orbs mengurangi konfigurasi 5–10 kali lipat. Misalnya, orb circleci/android menyediakan executor android/default dengan SDK terinstal dan perintah restore-gradle-cache, save-gradle-cache. Orb circleci/ios mencakup executor dengan Xcode dan perintah untuk code signing melalui fastlane. Orbs dapat dengan mudah dikombinasikan: hubungkan android orb untuk build dan slack orb untuk notifikasi.

CircleCI juga menawarkan dukungan bawaan untuk laporan tes. Store_test_results secara otomatis mengurai dan memvisualisasikan hasil tes JUnit, XCTest, dan format lainnya. Untuk proyek mobile, ini berarti tampilan terpusat dari tes yang gagal, tren waktu eksekusi, dan riwayat stabilitas build, yang menyederhanakan pemeliharaan kualitas kode.

Contoh dengan iOS orb

yaml
orbs:
  ios: circleci/ios@2.0.0

jobs:
  build-and-test:
    executor: ios/default
    steps:
      - checkout
      - ios/install-dependencies
      - ios/build-and-test

Publikasi orb kustom tersedia melalui CircleCI CLI. Perintah circleci orb create dan circleci orb publish memuat orb ke dalam registry. Ini berguna untuk standarisasi CI/CD di dalam organisasi — dibuat sekali, digunakan di semua proyek.

Pertanyaan yang Sering Diajukan

Berapa biaya CircleCI?

CircleCI menawarkan paket gratis dengan 6000 menit per bulan untuk satu kontainer. Performance Plan ($30/bulan) mencakup 10 job paralel dan 14000 menit. Scale Plan — harga individual dengan paralelisme tak terbatas.

Apa itu orbs di CircleCI?

Orbs — adalah paket YAML yang dapat digunakan kembali dari konfigurasi CircleCI, didistribusikan melalui registry resmi. Mereka berisi jobs, commands, dan executors siap pakai untuk alat dan platform populer.

Apakah CircleCI mendukung build iOS?

Ya, CircleCI mendukung macOS executor dengan Xcode terinstal (versi 14, 15, 16). Gambar tersedia untuk iOS 17 dan 18, watchOS, tvOS. Code signing dikonfigurasi melalui fastlane match atau secara manual.

Bagaimana cara kerja parallel test execution di CircleCI?

Tentukan parallelism: N di job — CircleCI akan membagi tes ke N kontainer. Perintah circleci tests split mendistribusikan tes secara merata. Tes dijalankan secara paralel, total waktu berkurang secara proporsional dengan jumlah kontainer.

Apa perbedaan CircleCI dengan GitHub Actions?

CircleCI menawarkan executor yang lebih fleksibel (Docker, macOS, Machine, Windows), sistem orbs yang canggih, parallel test splitting bawaan, dan artefak build yang terperinci. GitHub Actions unggul dalam integrasi dengan GitHub dan kesederhanaan.

Ringkasan

  • CircleCI — platform CI/CD cloud dengan dukungan untuk executor Docker, macOS, dan Windows untuk proyek mobile
  • Orbs — paket konfigurasi YAML siap pakai yang mengurangi pengaturan pipeline 5–10 kali lipat
  • Executor menentukan lingkungan eksekusi — Docker untuk Android, macOS VM untuk iOS, Machine untuk Docker-in-Docker
  • Parallelism membagi tes ke beberapa kontainer, mengurangi waktu eksekusi secara proporsional
  • Caching melalui restore_cache dan save_cache mempercepat build 3–5 kali lipat dengan pengaturan kunci yang tepat
  • Contexts — penyimpanan rahasia yang aman di tingkat organisasi dengan akses antar proyek
  • iOS orb dan Android orb menyediakan jobs siap pakai untuk membangun, menguji, dan menyebarkan aplikasi mobile

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