CircleCI: základy, orbs a kontinuální integrace

Autor: IT Sectr Publikováno: 2026-04-13 Doba čtení: 8 min

CircleCI — je cloudová CI/CD platforma pro automatizaci sestavování, testování a nasazování softwaru, včetně mobilních aplikací pro iOS a Android. Podle údajů CircleCI, 2024, platforma zpracovává více než 30 milionů sestavení měsíčně a nabízí unikátní architekturu založenou na orbs — hotových konfiguračních balíčcích pro populární nástroje.

Hlavní body

  • CircleCI — cloudová CI/CD platforma s podporou mobilních sestavení, Dockeru a prostředí macOS
  • Orb — hotový YAML konfigurační balíček, který zjednodušuje nastavení populárních nástrojů a služeb
  • Executor — prostředí pro provádění job: Docker obraz, Linux VM, macOS nebo Windows
  • Parallelism — rozdělení testů do více kontejnerů pro paralelní provádění
  • Caching uchovává závislosti mezi spuštěními, čímž zkracuje dobu sestavení 3–5krát

Co je CircleCI?

CircleCI — je cloudová CI/CD platforma založená v roce 2011. Systém umožňuje popisovat pipeline v YAML souboru .circleci/config.yml a spouštět je v izolovaných kontejnerech nebo virtuálních strojích. CircleCI podporuje všechny populární jazyky a platformy, včetně Android, iOS, Flutter a React Native.

Pro mobilní vývoj nabízí CircleCI macOS executory pro iOS sestavení s předinstalovaným Xcode, Linux executory pro Android s Android SDK, stejně jako caching Gradle a CocoaPods. Klíčová vlastnost — orbs, které umožňují připojit hotové konfigurace jedním řádkem: orb: android, orb: ios, orb: flutter. CircleCI automaticky detekuje typ projektu a nabízí šablonovou konfiguraci při prvním připojení repozitáře.

Platforma podporuje SSH přístup k běžícím kontejnerům pro ladění — užitečná funkce při analýze neúspěšných sestavení. CircleCI CLI umožňuje lokálně validovat a spouštět konfigurace, spravovat orbs a prohlížet logy. Platforma se integruje s GitHub, GitHub Enterprise, Bitbucket a GitLab pomocí systému webhooks.

Architektura CircleCI: Orbs, Executors a Contexts

Architektura CircleCI zahrnuje tři úrovně: Pipeline, Workflow a Job. Pipeline — je hlavní proces, spouštěný při commitu. Pipeline se skládá z Workflows — grafu Jobs, které mohou být prováděny sekvenčně nebo paralelně. Každý Job je prováděn na Executoru — prostředí s určitým obrazem. Workflow může obsahovat approval gates — ruční potvrzení před nasazením.

Orbs — jsou opakovaně použitelné balíčky YAML konfigurace, distribuované prostřednictvím CircleCI Orb Registry. Orb může obsahovat jobs, commands, executory a příklady. Populární orbs: android, ios, flutter, firebase, slack. Například připojení android orb nahrazuje 50+ řádků konfigurace jedním řádkem. CircleCI CLI umožňuje vytvářet, testovat a publikovat vlastní orbs pro standardizaci pipeline v organizaci.

Typy Executorů

ExecutorVhodný proSestavení
DockerAndroid, BackendLinux kontejner
macOSiOS, macOSmacOS VM s Xcode
MachineDocker-in-DockerUbuntu VM
Windows.NET, WinUIWindows Server

Contexts — jsou pojmenované sady proměnných prostředí, dostupné na úrovni organizace. Například, kontext app-store-credentials obsahuje Apple ID a heslo pro publikování v App Store. To zjednodušuje správu tajemství mezi projekty bez duplikace.

Nastavení CircleCI pro Android a iOS projekty

Pro Android projekt používá CircleCI Docker obraz cibuilds/android s Android SDK. Typický workflow zahrnuje: checkout, instalaci JDK, caching Gradle, sestavení, spuštění testů. Pro iOS je vyžadován macOS executor s Xcode a nastavením code signing. Při prvním připojení CircleCI automaticky detekuje typ projektu a generuje základní konfiguraci s doporučenými nastaveními.

Pro Flutter projekty poskytuje CircleCI orb circleci/flutter, který obsahuje executory s předinstalovaným Flutter SDK pro Linux a macOS. Orb podporuje sestavení pro obě platformy, caching pub-cache a spouštění testů. Nastavení se omezuje na uvedení verze Flutter a příkazů sestavení. Pro vlastní verze Flutter nebo Dart lze použít Docker obraz s potřebným SDK. Flutter orb také podporuje pokročilé možnosti — například analýzu kódu pomocí dart analyze před sestavením.

Android orb — rychlý start

Android orb od CircleCI poskytuje hotové jobs: build-and-test, deploy-to-play-store. Orb automaticky nastavuje prostředí, caching a podepisování. Po připojení orb stačí uvést verzi SDK a příkazy sestavení.

iOS sestavení s macOS executorem

Pro iOS sestavení se uvádí executor: macos s verzí xcode. CircleCI poskytuje obrazy s Xcode 14, 15 a 16. Po checkout je kód kompilován pomocí xcodebuild, testy jsou spouštěny na simulátoru. Code signing se nastavuje pomocí fastlane match nebo ruční instalací certifikátů.

Caching a paralelní provádění

Caching — klíčový prvek výkonu CircleCI. Mechanismus cache uchovává adresáře mezi spuštěními workflow na základě klíče. Pro Gradle je cacheován ~/.gradle, pro CocoaPods — Pods/, pro npm/SPM — node_modules/.build. Při změně lock souboru se cache automaticky aktualizuje. CircleCI podporuje oddělené politiky: save_cache může být zpožděn (when: always), zatímco restore_cache je povinný.

Parallelism v kombinaci s resource class umožňuje přesně nastavit výkon sestavení. Resource class určuje množství CPU a RAM pro kontejner: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) a large (4 CPU, 8 GB). Pro iOS sestavení s Xcode se doporučuje používat macOS executor s resource class medium nebo larger — kompilace Swift kódu vyžaduje značné zdroje.

Parallelism rozděluje testy do více kontejnerů, čímž zkracuje dobu provádění. Například: parallelism: 4 spouští testy ve 4 paralelních kontejnerech. CircleCI automaticky distribuuje testovací soubory mezi kontejnery. Příkaz circleci tests glob shromažďuje seznam testů a circleci tests split je rovnoměrně rozděluje.

Příklad 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

Příklad konfigurace .circleci/config.yml

Podívejme se na úplnou konfiguraci CircleCI pro Android projekt se dvěma job: build a test. Konfigurace zahrnuje Docker executor s Android SDK, caching Gradle a paralelní spouštění testů. Artifacts jsou uchovávány ke stažení. Workflow build-and-test spouští oba joby při každém push do hlavní větve.

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: hotová řešení pro CI/CD

Při výběru mezi CircleCI a alternativami — pokud tým používá GitHub, GitHub Actions může být jednodušší volbou. CircleCI je vhodnější pro týmy, které vyžadují flexibilní parallel test execution, přizpůsobení prostředí executor a podrobné statistiky sestavení. CircleCI Insights poskytuje dashboard s metrikami výkonu pipeline: průměrná doba sestavení, trendy a úzká místa. Insights pomáhá identifikovat joby s dlouhým prováděním a optimalizovat je. CircleCI API umožňuje programově řídit pipeline, spouštět sestavení a získávat metriky.

Pro bezpečnou práci s tajemstvími podporuje CircleCI Contexts — pojmenované sady proměnných prostředí na úrovni organizace. Contexts jsou chráněny přístupem na základě rolí: pouze určité týmy mohou používat konkrétní context. Například context production-deploy obsahuje klíče App Store Connect a je dostupný pouze pro lead vývojáře. V kombinaci s approval gates to tvoří plnohodnotný bezpečnostní systém CI/CD.

CircleCI Orb Registry obsahuje stovky hotových balíčků pro různé CI/CD úkoly. Pro mobilní vývoj klíčové orbs zahrnují: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution. Každý orb je verzován a dokumentován. Orbs mohou být veřejné (přístupné všem) a soukromé (pouze pro vaši organizaci).

Použití orbs snižuje konfiguraci 5–10krát. Například, orb circleci/android poskytuje executor android/default s předinstalovaným SDK a příkazy restore-gradle-cache, save-gradle-cache. Orb circleci/ios obsahuje executor s Xcode a příkazy pro code signing přes fastlane. Orbs lze snadno kombinovat: připojit android orb pro sestavení a slack orb pro notifikace.

CircleCI také nabízí vestavěnou podporu pro testovací reporty. Store_test_results automaticky parsuje a vizualizuje výsledky testů JUnit, XCTest a dalších formátů. Pro mobilní projekty to znamená centralizovaný přehled neúspěšných testů, trendy doby provádění a historii stability sestavení, což zjednodušuje udržování kvality kódu.

Příklad s 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

Publikování vlastního orb je možné přes CircleCI CLI. Příkazy circleci orb create a circleci orb publish načítají orb do registru. To je užitečné pro standardizaci CI/CD v rámci organizace — vytvoří se jednou, používá se ve všech projektech.

Často kladené otázky

Kolik stojí CircleCI?

CircleCI nabízí bezplatný plán s 6000 minutami měsíčně pro jeden kontejner. Performance Plan ($30/měs) zahrnuje 10 paralelních jobů a 14000 minut. Scale Plan — individuální ceny s neomezenou paralelností.

Co jsou orbs v CircleCI?

Orbs — jsou opakovaně použitelné YAML balíčky konfigurace CircleCI, distribuované prostřednictvím oficiálního registru. Obsahují hotové jobs, commands a executory pro populární nástroje a platformy.

Podporuje CircleCI iOS sestavení?

Ano, CircleCI podporuje macOS executor s předinstalovaným Xcode (verze 14, 15, 16). K dispozici jsou obrazy pro iOS 17 a 18, watchOS, tvOS. Code signing se nastavuje přes fastlane match nebo ručně.

Jak funguje parallel test execution v CircleCI?

Uveďte parallelism: N v job — CircleCI rozdělí testy do N kontejnerů. Příkaz circleci tests split rozděluje testy rovnoměrně. Testy se provádějí paralelně, celkový čas se snižuje úměrně počtu kontejnerů.

Čím se CircleCI liší od GitHub Actions?

CircleCI nabízí flexibilnější executory (Docker, macOS, Machine, Windows), rozvinutý systém orbs, vestavěné parallel test splitting a podrobné artefakty sestavení. GitHub Actions vyniká v integraci s GitHub a jednoduchostí.

Shrnutí

  • CircleCI — cloudová CI/CD platforma s podporou Docker, macOS a Windows executorů pro mobilní projekty
  • Orbs — hotové YAML konfigurační balíčky, které zkracují nastavení pipeline 5–10krát
  • Executor určuje prostředí provádění — Docker pro Android, macOS VM pro iOS, Machine pro Docker-in-Docker
  • Parallelism rozděluje testy do více kontejnerů, úměrně zkracuje dobu provádění
  • Caching přes restore_cache a save_cache zrychluje sestavení 3–5krát při správném nastavení klíče
  • Contexts — bezpečné ukládání tajemství na úrovni organizace s přístupem mezi projekty
  • iOS orb a Android orb poskytují hotové jobs pro sestavení, testování a nasazení mobilních aplikací

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také