CircleCI: mga batayan, orbs at tuloy-tuloy na integrasyon

May-akda: IT Sectr Nai-publish: 2026-04-13 Oras ng pagbabasa: 8 min

CircleCI — ay isang cloud CI/CD platform para sa automation ng pagbuo, pagsubok at pag-deploy ng software, kabilang ang mga mobile application para sa iOS at Android. Ayon sa CircleCI, 2024, ang platform ay nagpoproseso ng mahigit 30 milyong build buwan-buwan at nag-aalok ng natatanging arkitektura batay sa orbs — mga handa nang configuration package para sa mga sikat na tool.

Mga Pangunahing Punto

  • CircleCI — cloud CI/CD platform na may suporta para sa mobile builds, Docker at macOS environment
  • Orb — handa nang YAML configuration package na nagpapadali sa pag-setup ng mga sikat na tool at serbisyo
  • Executor — kapaligiran ng pagpapatupad ng job: Docker image, Linux VM, macOS o Windows
  • Parallelism — paghahati ng mga test sa maraming container para sa parallel na pagpapatupad
  • Caching nag-iimbak ng mga dependency sa pagitan ng mga run, binabawasan ang oras ng build nang 3–5 beses

Ano ang CircleCI?

CircleCI — ay isang cloud CI/CD platform, na itinatag noong 2011. Ang sistema ay nagbibigay-daan sa paglalarawan ng mga pipeline sa YAML file na .circleci/config.yml at pagpapatakbo ng mga ito sa mga nakahiwalay na container o virtual machine. Sinusuportahan ng CircleCI ang lahat ng sikat na wika at platform, kabilang ang Android, iOS, Flutter at React Native.

Para sa mobile development, nag-aalok ang CircleCI ng macOS executors para sa iOS build na may pre-installed na Xcode, Linux executors para sa Android na may Android SDK, pati na rin ang caching ng Gradle at CocoaPods. Pangunahing tampok — orbs, na nagpapahintulot sa pagkonekta ng mga handa nang configuration sa isang linya: orb: android, orb: ios, orb: flutter. Awtomatikong nakikita ng CircleCI ang uri ng proyekto at nag-aalok ng template configuration sa unang pagkonekta ng repository.

Sinusuportahan ng platform ang SSH access sa mga tumatakbong container para sa pag-debug — isang kapaki-pakinabang na tampok sa pagsusuri ng mga nabigong build. CircleCI CLI ay nagbibigay-daan sa lokal na pag-validate at pagpapatakbo ng mga configuration, pamamahala ng orbs at pagtingin ng mga log. Ang platform ay sumasama sa GitHub, GitHub Enterprise, Bitbucket at GitLab sa pamamagitan ng webhooks system.

Arkitektura ng CircleCI: Orbs, Executors at Contexts

Ang arkitektura ng CircleCI ay may kasamang tatlong antas: Pipeline, Workflow at Job. Pipeline — ay ang pangunahing proseso, na na-trigger sa commit. Ang Pipeline ay binubuo ng Workflows — isang graph ng Jobs na maaaring isagawa nang sunud-sunod o parallel. Ang bawat Job ay isinasagawa sa isang Executor — isang kapaligiran na may tiyak na image. Ang Workflow ay maaaring maglaman ng approval gates — manu-manong kumpirmasyon bago ang pag-deploy.

Orbs — ay mga reusable na YAML configuration package, na ipinamamahagi sa pamamagitan ng CircleCI Orb Registry. Ang Orb ay maaaring maglaman ng jobs, commands, executors at mga halimbawa. Mga sikat na orbs: android, ios, flutter, firebase, slack. Halimbawa, ang pagkonekta ng android orb ay pumapalit sa 50+ linya ng configuration ng isang linya. Ang CircleCI CLI ay nagbibigay-daan sa paglikha, pagsubok at pag-publish ng sariling orbs para sa standardisasyon ng mga pipeline sa organisasyon.

Mga Uri ng Executor

ExecutorAngkop para saBuild
DockerAndroid, BackendLinux container
macOSiOS, macOSmacOS VM na may Xcode
MachineDocker-in-DockerUbuntu VM
Windows.NET, WinUIWindows Server

Contexts — ay mga pinangalanang set ng environment variables, na available sa antas ng organisasyon. Halimbawa, ang kontekstong app-store-credentials ay naglalaman ng Apple ID at password para sa pag-publish sa App Store. Pinapadali nito ang pamamahala ng mga lihim sa pagitan ng mga proyekto nang walang pagdoble.

Pag-configure ng CircleCI para sa mga proyekto ng Android at iOS

Para sa isang proyekto ng Android, gumagamit ang CircleCI ng Docker image na cibuilds/android na may Android SDK. Karaniwang workflow ay kasama ang: checkout, pag-install ng JDK, caching ng Gradle, build, pagpapatakbo ng mga test. Para sa iOS, kinakailangan ang macOS executor na may Xcode at configuration ng code signing. Sa unang pagkonekta, awtomatikong nakikita ng CircleCI ang uri ng proyekto at bumubuo ng pangunahing configuration na may mga inirerekomendang setting.

Para sa mga proyekto ng Flutter, nagbibigay ang CircleCI ng orb circleci/flutter, na may kasamang executors na may pre-installed na Flutter SDK para sa Linux at macOS. Sinusuportahan ng Orb ang build para sa parehong platform, caching ng pub-cache at pagpapatakbo ng mga test. Ang configuration ay bumababa sa pagtukoy ng bersyon ng Flutter at mga command ng build. Para sa mga custom na bersyon ng Flutter o Dart, maaaring gumamit ng Docker image na may kinakailangang SDK. Sinusuportahan din ng Flutter orb ang mga advanced na opsyon — halimbawa, pagsusuri ng code sa pamamagitan ng dart analyze bago ang build.

Android orb — mabilis na pagsisimula

Ang Android orb mula sa CircleCI ay nagbibigay ng mga handa nang jobs: build-and-test, deploy-to-play-store. Awtomatikong ini-configure ng Orb ang kapaligiran, caching at pagpirma. Pagkatapos kumonekta ng orb, sapat na upang tukuyin ang bersyon ng SDK at mga command ng build.

iOS build na may macOS executor

Para sa iOS build, tinutukoy ang executor: macos na may bersyon ng xcode. Nagbibigay ang CircleCI ng mga image na may Xcode 14, 15 at 16. Pagkatapos ng checkout, ang code ay kino-compile sa pamamagitan ng xcodebuild, ang mga test ay pinapatakbo sa simulator. Ang code signing ay na-configure sa pamamagitan ng fastlane match o manu-manong pag-install ng mga certificate.

Caching at parallel na pagpapatupad

Caching — ay pangunahing elemento ng pagganap ng CircleCI. Mekanismo ng cache ay nag-iimbak ng mga direktoryo sa pagitan ng mga run ng workflow batay sa isang key. Para sa Gradle, ~/.gradle ay naka-cache, para sa CocoaPods — Pods/, para sa npm/SPM — node_modules/.build. Kapag nagbago ang lock file, awtomatikong naa-update ang cache. Sinusuportahan ng CircleCI ang magkakahiwalay na patakaran: ang save_cache ay maaaring maantala (when: always), habang ang restore_cache ay sapilitan.

Parallelism kasama ang resource class ay nagbibigay-daan sa tumpak na pag-aayos ng pagganap ng build. Resource class ay tumutukoy sa dami ng CPU at RAM para sa container: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) at large (4 CPU, 8 GB). Para sa iOS builds na may Xcode, inirerekomenda ang paggamit ng macOS executor na may resource class medium o larger — ang compilation ng Swift code ay nangangailangan ng malaking resources.

Parallelism ay naghahati ng mga test sa maraming container, binabawasan ang oras ng pagpapatupad. Halimbawa: parallelism: 4 ay nagpapatakbo ng mga test sa 4 na parallel container. Awtomatikong ipinamamahagi ng CircleCI ang mga test file sa mga container. Ang command na circleci tests glob ay nangongolekta ng listahan ng mga test, at ang circleci tests split ay namamahagi ng mga ito nang pantay.

Halimbawa ng Gradle caching

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

Halimbawa ng configuration .circleci/config.yml

Tingnan natin ang isang kumpletong CircleCI configuration para sa isang Android project na may dalawang job: build at test. Kasama sa configuration ang Docker executor na may Android SDK, Gradle caching at parallel na pagpapatakbo ng test. Ang Artifacts ay iniimbak para sa pag-download. Ang workflow na build-and-test ay nagpapatakbo ng parehong job sa bawat push sa pangunahing branch.

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: handa nang solusyon para sa CI/CD

Sa pagpili sa pagitan ng CircleCI at mga alternatibo — kung ang team ay gumagamit ng GitHub, ang GitHub Actions ay maaaring maging mas simpleng pagpili. Ang CircleCI ay mas mainam para sa mga team na nangangailangan ng flexible parallel test execution, pag-customize ng executor environment at detalyadong build statistics. CircleCI Insights ay nagbibigay ng dashboard na may mga sukatan ng pagganap ng pipeline: average na oras ng build, trends at mga bottleneck. Tumutulong ang Insights sa pagtukoy ng mga job na may mahabang pagpapatupad at pag-optimize ng mga ito. Ang CircleCI API ay nagbibigay-daan sa programmatic na pamamahala ng mga pipeline, pagsisimula ng mga build at pagkuha ng mga sukatan.

Para sa ligtas na pagtatrabaho sa mga lihim, sinusuportahan ng CircleCI ang Contexts — mga pinangalanang set ng environment variables sa antas ng organisasyon. Ang Contexts ay protektado ng role-based access: ilang partikular na team lamang ang maaaring gumamit ng isang partikular na context. Halimbawa, ang kontekstong production-deploy ay naglalaman ng mga susi ng App Store Connect at available lamang sa mga lead developer. Kasama ng approval gates, ito ay bumubuo ng isang ganap na sistema ng seguridad ng CI/CD.

Ang CircleCI Orb Registry ay naglalaman ng daan-daang handa nang package para sa iba't ibang gawain ng CI/CD. Para sa mobile development, ang mga pangunahing orbs ay kinabibilangan ng: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution. Bawat orb ay may bersyon at dokumentasyon. Ang Orbs ay maaaring pampubliko (accessible sa lahat) at pribado (para lamang sa iyong organisasyon).

Ang paggamit ng orbs ay nagbabawas ng configuration nang 5–10 beses. Halimbawa, ang orb circleci/android ay nagbibigay ng executor android/default na may pre-installed na SDK at mga command na restore-gradle-cache, save-gradle-cache. Ang orb circleci/ios ay may kasamang executor na may Xcode at mga command para sa code signing sa pamamagitan ng fastlane. Ang mga orb ay madaling pagsamahin: ikonekta ang android orb para sa build at slack orb para sa mga notification.

Nag-aalok din ang CircleCI ng built-in na suporta para sa mga test report. Store_test_results ay awtomatikong nagpe-parse at nagvi-visualize ng mga resulta ng test ng JUnit, XCTest at iba pang format. Para sa mga mobile project, ito ay nangangahulugan ng sentralisadong pagtingin sa mga nabigong test, trends ng oras ng pagpapatupad at kasaysayan ng stability ng build, na nagpapadali sa pagpapanatili ng kalidad ng code.

Halimbawa na may 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

Pag-publish ng custom na orb ay available sa pamamagitan ng CircleCI CLI. Ang mga command na circleci orb create at circleci orb publish ay naglo-load ng orb sa registry. Ito ay kapaki-pakinabang para sa standardisasyon ng CI/CD sa loob ng organisasyon — ginagawa nang isang beses, ginagamit sa lahat ng proyekto.

Mga Madalas Itanong

Magkano ang halaga ng CircleCI?

Nag-aalok ang CircleCI ng libreng plano na may 6000 minuto bawat buwan para sa isang container. Ang Performance Plan ($30/buwan) ay may kasamang 10 parallel na job at 14000 minuto. Ang Scale Plan — indibidwal na presyo na may walang limitasyong parallelisasyon.

Ano ang orbs sa CircleCI?

Orbs — ay mga reusable na YAML package ng CircleCI configuration, na ipinamamahagi sa pamamagitan ng opisyal na registry. Naglalaman ang mga ito ng mga handa nang jobs, commands at executors para sa mga sikat na tool at platform.

Sinusuportahan ba ng CircleCI ang mga iOS build?

Oo, sinusuportahan ng CircleCI ang macOS executor na may pre-installed na Xcode (mga bersyon 14, 15, 16). Available ang mga image para sa iOS 17 at 18, watchOS, tvOS. Ang code signing ay na-configure sa pamamagitan ng fastlane match o mano-mano.

Paano gumagana ang parallel test execution sa CircleCI?

Tukuyin ang parallelism: N sa job — hahatiin ng CircleCI ang mga test sa N container. Ang command na circleci tests split ay namamahagi ng mga test nang pantay. Ang mga test ay isinasagawa nang parallel, ang kabuuang oras ay nababawasan nang proporsyonal sa bilang ng mga container.

Paano naiiba ang CircleCI sa GitHub Actions?

Nag-aalok ang CircleCI ng mas nababagong executors (Docker, macOS, Machine, Windows), isang advanced na orbs system, built-in parallel test splitting at detalyadong build artifacts. Ang GitHub Actions ay higit na mahusay sa integrasyon sa GitHub at pagiging simple.

Buod

  • CircleCI — cloud CI/CD platform na may suporta para sa Docker, macOS at Windows executors para sa mga mobile project
  • Orbs — handa nang YAML configuration package na nagbabawas ng pag-setup ng pipeline nang 5–10 beses
  • Executor ay tumutukoy sa kapaligiran ng pagpapatupad — Docker para sa Android, macOS VM para sa iOS, Machine para sa Docker-in-Docker
  • Parallelism ay naghahati ng mga test sa maraming container, proporsyonal na binabawasan ang oras ng pagpapatupad
  • Caching sa pamamagitan ng restore_cache at save_cache ay nagpapabilis ng build nang 3–5 beses na may tamang key setting
  • Contexts — ligtas na pag-iimbak ng mga lihim sa antas ng organisasyon na may access sa pagitan ng mga proyekto
  • iOS orb at Android orb ay nagbibigay ng mga handa nang jobs para sa pagbuo, pagsubok at pag-deploy ng mga mobile application

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din