CircleCI: baze, orbs și integrare continuă

Autor: IT Sectr Publicat: 2026-04-13 Timp de citire: 8 min

CircleCI — este o platformă CI/CD în cloud pentru automatizarea compilării, testării și implementării software-ului, inclusiv a aplicațiilor mobile pentru iOS și Android. Conform CircleCI, 2024, platforma procesează peste 30 de milioane de compilări lunar și oferă o arhitectură unică bazată pe orbs — pachete de configurare gata făcute pentru instrumente populare.

Puncte cheie

  • CircleCI — platformă CI/CD în cloud cu suport pentru compilări mobile, Docker și mediu macOS
  • Orb — pachet YAML de configurare gata făcut, care simplifică configurarea instrumentelor și serviciilor populare
  • Executor — mediu de execuție job: imagine Docker, Linux VM, macOS sau Windows
  • Parallelism — împărțirea testelor pe mai multe containere pentru execuție paralelă
  • Caching păstrează dependențele între rulări, reducând timpul de compilare de 3–5 ori

Ce este CircleCI?

CircleCI — este o platformă CI/CD în cloud, fondată în 2011. Sistemul permite descrierea pipeline-urilor în fișierul YAML .circleci/config.yml și executarea lor în containere izolate sau mașini virtuale. CircleCI suportă toate limbajele și platformele populare, inclusiv Android, iOS, Flutter și React Native.

Pentru dezvoltarea mobilă, CircleCI oferă executors macOS pentru compilarea iOS cu Xcode preinstalat, executors Linux pentru Android cu Android SDK, precum și cache pentru Gradle și CocoaPods. Caracteristica cheie — orbs, care permit conectarea configurațiilor gata făcute cu o singură linie: orb: android, orb: ios, orb: flutter. CircleCI detectează automat tipul proiectului și propune o configurație șablon la prima conectare a depozitului.

Platforma suportă accesul SSH la containerele în execuție pentru depanare — o funcție utilă la analiza compilărilor eșuate. CircleCI CLI permite validarea și executarea locală a configurațiilor, gestionarea orbs și vizualizarea logurilor. Platforma se integrează cu GitHub, GitHub Enterprise, Bitbucket și GitLab prin sistemul webhooks.

Arhitectura CircleCI: Orbs, Executors și Contexts

Arhitectura CircleCI include trei niveluri: Pipeline, Workflow și Job. Pipeline — este procesul principal, declanșat la commit. Pipeline constă din Workflows — un graf de Jobs care pot fi executate secvențial sau paralel. Fiecare Job este executat pe un Executor — un mediu cu o imagine specificată. Workflow poate include approval gates — confirmare manuală înainte de implementare.

Orbs — sunt pachete de configurare YAML reutilizabile, distribuite prin CircleCI Orb Registry. Orb poate conține jobs, commands, executors și exemple. Orbs populare: android, ios, flutter, firebase, slack. De exemplu, conectarea android orb înlocuiește 50+ linii de configurare cu o singură linie. CircleCI CLI permite crearea, testarea și publicarea propriilor orbs pentru standardizarea pipeline-urilor în organizație.

Tipuri de Executors

ExecutorPotrivit pentruCompilare
DockerAndroid, BackendContainer Linux
macOSiOS, macOSmacOS VM cu Xcode
MachineDocker-in-DockerUbuntu VM
Windows.NET, WinUIWindows Server

Contexts — sunt seturi numite de variabile de mediu, disponibile la nivel de organizație. De exemplu, contextul app-store-credentials conține Apple ID și parola pentru publicarea în App Store. Acest lucru simplifică gestionarea secretelor între proiecte fără duplicare.

Configurarea CircleCI pentru proiecte Android și iOS

Pentru un proiect Android, CircleCI folosește imaginea Docker cibuilds/android cu Android SDK. Workflow tipic include: checkout, instalarea JDK, cache pentru Gradle, compilare, rularea testelor. Pentru iOS este necesar un executor macOS cu Xcode și configurarea code signing. La prima conectare, CircleCI detectează automat tipul proiectului și generează o configurare de bază cu setări recomandate.

Pentru proiecte Flutter, CircleCI oferă orb circleci/flutter, care include executors cu Flutter SDK preinstalat pentru Linux și macOS. Orb suportă compilarea pentru ambele platforme, cache pentru pub-cache și rularea testelor. Configurarea se rezumă la specificarea versiunii Flutter și a comenzilor de compilare. Pentru versiuni personalizate de Flutter sau Dart se poate folosi o imagine Docker cu SDK-ul necesar. Flutter orb suportă și opțiuni avansate — de exemplu, analiza codului prin dart analyze înainte de compilare.

Android orb — pornire rapidă

Android orb de la CircleCI oferă jobs gata făcute: build-and-test, deploy-to-play-store. Orb configurează automat mediul, cache-ul și semnarea. După conectarea orb, este suficient să specificați versiunea SDK și comenzile de compilare.

Compilare iOS cu executor macOS

Pentru compilarea iOS se specifică executor: macos cu versiunea xcode. CircleCI oferă imagini cu Xcode 14, 15 și 16. După checkout, codul este compilat prin xcodebuild, testele sunt rulate pe simulator. Code signing se configurează prin fastlane match sau instalarea manuală a certificatelor.

Cache și execuție paralelă

Cache-ul — elementul cheie al performanței CircleCI. Mecanismul cache păstrează directoarele între rulările workflow-ului pe baza unei chei. Pentru Gradle se cachează ~/.gradle, pentru CocoaPods — Pods/, pentru npm/SPM — node_modules/.build. La modificarea fișierului lock, cache-ul se actualizează automat. CircleCI suportă politici separate: save_cache poate fi întârziat (when: always), iar restore_cache — obligatoriu.

Parallelism în combinație cu resource class permite ajustarea fină a performanței de compilare. Resource class determină cantitatea de CPU și RAM pentru container: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) și large (4 CPU, 8 GB). Pentru compilările iOS cu Xcode se recomandă utilizarea executor macOS cu resource class medium sau larger — compilarea codului Swift necesită resurse semnificative.

Parallelism împarte testele pe mai multe containere, reducând timpul de execuție. De exemplu: parallelism: 4 rulează testele în 4 containere paralele. CircleCI distribuie automat fișierele de test între containere. Comanda circleci tests glob colectează lista testelor, iar circleci tests split le distribuie uniform.

Exemplu de cache 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

Exemplu de configurare .circleci/config.yml

Să examinăm o configurare completă CircleCI pentru un proiect Android cu două job-uri: build și test. Configurarea include Docker executor cu Android SDK, cache pentru Gradle și rularea paralelă a testelor. Artifacts sunt păstrate pentru descărcare. Workflow-ul build-and-test rulează ambele job-uri la fiecare push în ramura principală.

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: soluții gata făcute pentru CI/CD

La alegerea între CircleCI și alternative — dacă echipa folosește GitHub, GitHub Actions poate fi o alegere mai simplă. CircleCI este preferat pentru echipele care necesită parallel test execution flexibil, personalizarea mediului executor și statistici detaliate ale compilărilor. CircleCI Insights oferă un dashboard cu metrici de performanță ale pipeline-urilor: timpul mediu de compilare, tendințe și puncte de blocaj. Insights ajută la identificarea job-urilor cu execuție lungă și optimizarea lor. CircleCI API permite gestionarea programatică a pipeline-urilor, rularea compilărilor și obținerea de metrici.

Pentru lucrul sigur cu secrete, CircleCI suportă Contexts — seturi numite de variabile de mediu la nivel de organizație. Contexts sunt protejate prin acces bazat pe roluri: doar anumite echipe pot folosi un context specific. De exemplu, contextul production-deploy conține cheile App Store Connect și este disponibil doar pentru lead developeri. În combinație cu approval gates, aceasta formează un sistem de securitate CI/CD complet.

CircleCI Orb Registry conține sute de pachete gata făcute pentru diverse sarcini CI/CD. Pentru dezvoltarea mobilă, orbs cheie includ: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution. Fiecare orb este versionat și documentat. Orbs pot fi publice (accesibile tuturor) și private (doar pentru organizația dumneavoastră).

Utilizarea orbs reduce configurarea de 5–10 ori. De exemplu, orb circleci/android oferă executorul android/default cu SDK preinstalat și comenzile restore-gradle-cache, save-gradle-cache. Orb circleci/ios include executor cu Xcode și comenzi pentru code signing prin fastlane. Orbs pot fi combinate ușor: conectați android orb pentru compilare și slack orb pentru notificări.

CircleCI oferă și suport încorporat pentru rapoarte de testare. Store_test_results parsează și vizualizează automat rezultatele testelor JUnit, XCTest și altor formate. Pentru proiectele mobile, aceasta înseamnă vizualizare centralizată a testelor eșuate, tendințe ale timpului de execuție și istoric al stabilității compilărilor, simplificând menținerea calității codului.

Exemplu cu 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

Publicarea unui orb personalizat este disponibilă prin CircleCI CLI. Comenzile circleci orb create și circleci orb publish încarcă orb-ul în registru. Acest lucru este util pentru standardizarea CI/CD în cadrul organizației — se creează o dată, se folosește în toate proiectele.

Întrebări frecvente

Cât costă CircleCI?

CircleCI oferă un plan gratuit cu 6000 de minute pe lună pentru un container. Performance Plan ($30/lună) include 10 job-uri paralele și 14000 de minute. Scale Plan — prețuri individuale cu paralelism nelimitat.

Ce sunt orbs în CircleCI?

Orbs — sunt pachete YAML reutilizabile de configurare CircleCI, distribuite prin registrul oficial. Acestea conțin jobs, commands și executors gata făcute pentru instrumente și platforme populare.

Suportă CircleCI compilări iOS?

Da, CircleCI suportă macOS executor cu Xcode preinstalat (versiunile 14, 15, 16). Sunt disponibile imagini pentru iOS 17 și 18, watchOS, tvOS. Code signing se configurează prin fastlane match sau manual.

Cum funcționează parallel test execution în CircleCI?

Specificați parallelism: N în job — CircleCI va împărți testele în N containere. Comanda circleci tests split distribuie testele uniform. Testele se execută paralel, timpul total se reduce proporțional cu numărul de containere.

Cu ce se diferențiază CircleCI de GitHub Actions?

CircleCI oferă executors mai flexibili (Docker, macOS, Machine, Windows), un sistem avansat de orbs, parallel test splitting încorporat și artefacte detaliate de compilare. GitHub Actions excelează în integrarea cu GitHub și simplitate.

Rezumat

  • CircleCI — platformă CI/CD în cloud cu suport pentru executors Docker, macOS și Windows pentru proiecte mobile
  • Orbs — pachete de configurare YAML gata făcute care reduc configurarea pipeline-urilor de 5–10 ori
  • Executor determină mediul de execuție — Docker pentru Android, macOS VM pentru iOS, Machine pentru Docker-in-Docker
  • Parallelism împarte testele pe mai multe containere, reducând proporțional timpul de execuție
  • Cache-ul prin restore_cache și save_cache accelerează compilarea de 3–5 ori cu setarea corectă a cheii
  • Contexts — stocarea sigură a secretelor la nivel de organizație cu acces între proiecte
  • iOS orb și Android orb oferă jobs gata făcute pentru compilarea, testarea și implementarea aplicațiilor mobile

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și