CircleCI: alapok, orbs és folyamatos integráció

Szerző: IT Sectr Megjelenés: 2026-04-13 Olvasási idő: 8 perc

CircleCI — egy felhőalapú CI/CD platform a szoftverek build-elésének, tesztelésének és telepítésének automatizálására, beleértve az iOS és Android mobilos alkalmazásokat is. A CircleCI, 2024 adatai szerint a platform havonta több mint 30 millió buildet dolgoz fel, és egyedi architektúrát kínál orbs — népszerű eszközökhöz készült konfigurációs csomagok — alapján.

Főbb pontok

  • CircleCI — felhőalapú CI/CD platform mobilos build-ek, Docker és macOS környezet támogatásával
  • Orb — kész YAML konfigurációs csomag, amely leegyszerűsíti a népszerű eszközök és szolgáltatások beállítását
  • Executor — job végrehajtási környezet: Docker kép, Linux VM, macOS vagy Windows
  • Parallelism — tesztek felosztása több konténerre párhuzamos végrehajtáshoz
  • Caching megőrzi a függőségeket a futtatások között, 3–5-szörösére csökkentve a build időt

Mi az a CircleCI?

CircleCI — egy felhőalapú CI/CD platform, amelyet 2011-ben alapítottak. A rendszer lehetővé teszi a pipeline-ok leírását a .circleci/config.yml YAML fájlban, és azok futtatását izolált konténerekben vagy virtuális gépekben. A CircleCI támogatja az összes népszerű nyelvet és platformot, beleértve az Androidot, iOS-t, Flutter-t és React Native-t.

Mobilfejlesztéshez a CircleCI macOS executor-okat kínál iOS build-ekhez előre telepített Xcode-dal, Linux executor-okat Androidhoz Android SDK-val, valamint a Gradle és CocoaPods gyorsítótárazását. Kulcsfontosságú jellemző — az orbs, amelyek lehetővé teszik kész konfigurációk egy soros csatlakoztatását: orb: android, orb: ios, orb: flutter. A CircleCI automatikusan felismeri a projekt típusát, és sablonkonfigurációt ajánl a repository első csatlakoztatásakor.

A platform SSH hozzáférést támogat a futó konténerekhez hibakeresés céljából — hasznos funkció a sikertelen build-ek elemzéséhez. CircleCI CLI lehetővé teszi a konfigurációk helyi érvényesítését és futtatását, az orbs-ok kezelését és a naplók megtekintését. A platform integrálódik a GitHubbal, GitHub Enterprise-ral, Bitbucket-tel és GitLab-lal webhooks rendszeren keresztül.

A CircleCI architektúrája: Orbs, Executors és Contexts

A CircleCI architektúrája három szintet foglal magában: Pipeline, Workflow és Job. Pipeline — a fő folyamat, amely commit-kor indul el. A Pipeline Workflow-kból áll — a Jobs gráfjából, amelyek szekvenciálisan vagy párhuzamosan hajthatók végre. Minden Job egy Executor-on — egy meghatározott képpel rendelkező környezetben — fut. A Workflow tartalmazhat approval gates-eket — kézi megerősítést a telepítés előtt.

Orbs — újrafelhasználható YAML konfigurációs csomagok, amelyeket a CircleCI Orb Registry-n keresztül terjesztenek. Az Orb tartalmazhat jobs, commands, executor-okat és példákat. Népszerű orbs-ok: android, ios, flutter, firebase, slack. Például az android orb csatlakoztatása 50+ sor konfigurációt helyettesít egyetlen sorral. A CircleCI CLI lehetővé teszi saját orbs-ok létrehozását, tesztelését és közzétételét a pipeline-ok szabványosításához a szervezetben.

Az Executor-ok típusai

ExecutorAlkalmasBuild
DockerAndroid, BackendLinux konténer
macOSiOS, macOSmacOS VM Xcode-dal
MachineDocker-in-DockerUbuntu VM
Windows.NET, WinUIWindows Server

Contexts — elnevezett környezeti változókészletek, amelyek szervezeti szinten érhetők el. Például, az app-store-credentials kontextus tartalmazza az Apple ID-t és jelszót az App Store-ban történő közzétételhez. Ez leegyszerűsíti a titkok kezelését a projektek között duplikáció nélkül.

CircleCI beállítása Android és iOS projektekhez

Android projekthez a CircleCI a cibuilds/android Docker képet használja Android SDK-val. Tipikus workflow tartalmazza: checkout, JDK telepítése, Gradle gyorsítótárazása, build, tesztek futtatása. iOS-hez macOS executor szükséges Xcode-dal és code signing beállítással. Az első csatlakozáskor a CircleCI automatikusan felismeri a projekt típusát, és létrehoz egy alapkonfigurációt ajánlott beállításokkal.

Flutter projektekhez a CircleCI a circleci/flutter orb-ot biztosítja, amely előre telepített Flutter SDK-val rendelkező executor-okat tartalmaz Linuxhoz és macOS-hez. Az Orb támogatja a build-et mindkét platformra, a pub-cache gyorsítótárazását és a tesztek futtatását. A beállítás a Flutter verziójának és a build parancsoknak a megadására korlátozódik. Egyedi Flutter vagy Dart verziókhoz a szükséges SDK-val rendelkező Docker kép használható. A Flutter orb támogatja a haladó opciókat is — például a kód elemzését dart analyze segítségével a build előtt.

Android orb — gyors indulás

A CircleCI Android orb-ja kész jobs-okat biztosít: build-and-test, deploy-to-play-store. Az orb automatikusan beállítja a környezetet, a gyorsítótárazást és az aláírást. Az orb csatlakoztatása után elég megadni az SDK verzióját és a build parancsokat.

iOS build macOS executor-rel

Az iOS build-hez meg kell adni az executor-t: macos xcode verzióval. A CircleCI biztosítja a képeket Xcode 14, 15 és 16 verziókkal. A checkout után a kód az xcodebuild-en keresztül fordításra kerül, a tesztek a szimulátoron futnak. A code signing a fastlane match-en keresztül vagy a tanúsítványok manuális telepítésével konfigurálható.

Gyorsítótárazás és párhuzamos végrehajtás

A gyorsítótárazás — a CircleCI teljesítményének kulcseleme. A cache mechanizmus megőrzi a könyvtárakat a workflow futtatások között egy kulcs alapján. A Gradle esetében ~/.gradle kerül gyorsítótárazásra, a CocoaPods esetében — Pods/, az npm/SPM esetében — node_modules/.build. A lock fájl változásakor a cache automatikusan frissül. A CircleCI különálló irányelveket támogat: a save_cache késleltethető (when: always), míg a restore_cache kötelező.

A Parallelism a resource class-szal kombinálva lehetővé teszi a build teljesítményének pontos beállítását. Resource class meghatározza a CPU és RAM mennyiségét a konténer számára: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) és large (4 CPU, 8 GB). Az Xcode-dal történő iOS build-ekhez ajánlott macOS executor használata resource class medium vagy larger beállítással — a Swift kód fordítása jelentős erőforrásokat igényel.

A Parallelism felosztja a teszteket több konténerre, csökkentve a végrehajtási időt. Például: a parallelism: 4 négy párhuzamos konténerben futtatja a teszteket. A CircleCI automatikusan elosztja a tesztfájlokat a konténerek között. A circleci tests glob parancs összegyűjti a tesztek listáját, a circleci tests split pedig egyenletesen osztja el azokat.

Példa Gradle gyorsítótárazásra

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

Példa konfiguráció: .circleci/config.yml

Vizsgáljunk meg egy teljes CircleCI konfigurációt egy Android projekthez két job-bal: build és test. A konfiguráció tartalmazza a Docker executor-t Android SDK-val, a Gradle gyorsítótárazását és a tesztek párhuzamos futtatását. Az Artifacts letöltésre kerülnek. A build-and-test workflow mindkét job-ot futtatja minden push-nál a fő ágba.

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: kész megoldások CI/CD-hez

A CircleCI és alternatívák közötti választáskor — ha a csapat GitHubot használ, a GitHub Actions egyszerűbb választás lehet. A CircleCI előnyösebb azoknak a csapatoknak, amelyek rugalmas parallel test execution-t, az executor környezet testreszabását és részletes build statisztikákat igényelnek. CircleCI Insights egy irányítópultot biztosít pipeline teljesítménymutatókkal: átlagos build idő, trendek és szűk keresztmetszetek. Az Insights segít azonosítani a hosszan futó job-okat és optimalizálni azokat. A CircleCI API lehetővé teszi a pipeline-ok programozott kezelését, build-ek indítását és mutatók lekérését.

A titkokkal való biztonságos munkához a CircleCI támogatja a Contexts-eket — elnevezett környezeti változókészleteket szervezeti szinten. A Contexts-ek védettek szerepkör-alapú hozzáféréssel: csak bizonyos csapatok használhatnak egy adott context-et. Például a production-deploy kontextus tartalmazza az App Store Connect kulcsokat, és csak a vezető fejlesztők számára elérhető. Az approval gates-ekkel kombinálva ez egy teljes értékű CI/CD biztonsági rendszert alkot.

A CircleCI Orb Registry több száz kész csomagot tartalmaz különböző CI/CD feladatokhoz. Mobilfejlesztéshez a kulcsfontosságú orbs-ok a következők: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution. Minden orb verziószámmal és dokumentációval rendelkezik. Az orbs-ok lehetnek nyilvánosak (mindenki számára elérhetőek) és privátak (csak az Ön szervezete számára).

Az orbs-ok használata 5–10-szeresére csökkenti a konfigurációt. Például, a circleci/android orb biztosítja az android/default executor-t előre telepített SDK-val és a restore-gradle-cache, save-gradle-cache parancsokat. A circleci/ios orb tartalmaz egy executor-t Xcode-dal és parancsokat a code signing-hez fastlane-en keresztül. Az orbs-ok könnyen kombinálhatók: csatlakoztassa az android orb-ot a build-hez és a slack orb-ot az értesítésekhez.

A CircleCI beépített támogatást is kínál a tesztjelentésekhez. Store_test_results automatikusan elemzi és vizualizálja a JUnit, XCTest és más formátumú teszteredményeket. Mobilos projekteknél ez a sikertelen tesztek központosított megtekintését, a végrehajtási idő trendjeit és a build stabilitásának történetét jelenti, ami leegyszerűsíti a kódminőség fenntartását.

Példa iOS orb-bal

yaml
orbs:
  ios: circleci/ios@2.0.0

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

Egyedi orb közzététele a CircleCI CLI-n keresztül lehetséges. A circleci orb create és circleci orb publish parancsok betöltik az orb-ot a regiszterbe. Ez hasznos a CI/CD szabványosításához a szervezeten belül — egyszer létrehozzák, minden projektben használják.

Gyakran Ismételt Kérdések

Mennyibe kerül a CircleCI?

A CircleCI ingyenes tervet kínál havi 6000 perccel egy konténer számára. A Performance Plan ($30/hó) 10 párhuzamos job-ot és 14000 percet tartalmaz. A Scale Plan — egyedi árak korlátlan párhuzamossággal.

Mik az orbs-ok a CircleCI-ben?

Orbs — újrafelhasználható YAML csomagok CircleCI konfigurációhoz, amelyeket a hivatalos regiszteren keresztül terjesztenek. Kész jobs, commands és executor-okat tartalmaznak népszerű eszközökhöz és platformokhoz.

Támogatja a CircleCI az iOS build-eket?

Igen, a CircleCI támogatja a macOS executor-t előre telepített Xcode-dal (14, 15, 16 verziók). Képek állnak rendelkezésre iOS 17 és 18, watchOS, tvOS rendszerekhez. A code signing a fastlane match-en keresztül vagy manuálisan konfigurálható.

Hogyan működik a parallel test execution a CircleCI-ben?

Adja meg a parallelism: N értéket a job-ban — a CircleCI N konténerre osztja a teszteket. A circleci tests split parancs egyenletesen osztja el a teszteket. A tesztek párhuzamosan futnak, a teljes idő a konténerek számával arányosan csökken.

Miben különbözik a CircleCI a GitHub Actionstől?

A CircleCI rugalmasabb executor-okat (Docker, macOS, Machine, Windows), fejlett orbs rendszert, beépített parallel test splitting-et és részletes build artefaktumokat kínál. A GitHub Actions a GitHubbal való integrációban és az egyszerűségben jeleskedik.

Összefoglaló

  • CircleCI — felhőalapú CI/CD platform Docker, macOS és Windows executor-ok támogatásával mobilos projektekhez
  • Orbs — kész YAML konfigurációs csomagok, amelyek 5–10-szeresére csökkentik a pipeline beállítást
  • Executor meghatározza a végrehajtási környezetet — Docker Androidhoz, macOS VM iOS-hez, Machine Docker-in-Dockerhez
  • Parallelism felosztja a teszteket több konténerre, arányosan csökkentve a végrehajtási időt
  • Gyorsítótárazás a restore_cache és save_cache segítségével 3–5-szörösére gyorsítja a build-et a kulcs helyes beállításával
  • Contexts — titkok biztonságos tárolása szervezeti szinten, projektek közötti hozzáféréssel
  • iOS orb és Android orb kész jobs-okat biztosít mobilos alkalmazások build-eléséhez, teszteléséhez és telepítéséhez

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is