CircleCI: basis, orbs en continue integratie

Auteur: IT Sectr Gepubliceerd: 2026-04-13 Leestijd: 8 min

CircleCI — is een cloud CI/CD-platform voor automatisering van bouwen, testen en implementeren van software, inclusief mobiele applicaties voor iOS en Android. Volgens CircleCI, 2024, verwerkt het platform maandelijks meer dan 30 miljoen builds en biedt het een unieke architectuur op basis van orbs — kant-en-klare configuratiepakketten voor populaire tools.

Belangrijkste punten

  • CircleCI — cloud CI/CD-platform met ondersteuning voor mobiele builds, Docker en macOS-omgeving
  • Orb — kant-en-klaar YAML-configuratiepakket dat het instellen van populaire tools en services vereenvoudigt
  • Executor — job-uitvoeringsomgeving: Docker-image, Linux VM, macOS of Windows
  • Parallelism — verdeling van tests over meerdere containers voor parallelle uitvoering
  • Caching bewaart afhankelijkheden tussen runs, waardoor de buildtijd 3–5 keer wordt verkort

Wat is CircleCI?

CircleCI — is een cloud CI/CD-platform, opgericht in 2011. Het systeem maakt het mogelijk om pipelines te beschrijven in het YAML-bestand .circleci/config.yml en ze uit te voeren in geïsoleerde containers of virtuele machines. CircleCI ondersteunt alle populaire talen en platforms, waaronder Android, iOS, Flutter en React Native.

Voor mobiele ontwikkeling biedt CircleCI macOS executors voor iOS-builds met vooraf geïnstalleerde Xcode, Linux executors voor Android met Android SDK, evenals caching van Gradle en CocoaPods. Kernfunctie — orbs, waarmee kant-en-klare configuraties met één regel kunnen worden aangesloten: orb: android, orb: ios, orb: flutter. CircleCI detecteert automatisch het projecttype en stelt een sjabloonconfiguratie voor bij de eerste verbinding van de repository.

Het platform ondersteunt SSH-toegang tot actieve containers voor debugging — een handige functie bij het analyseren van mislukte builds. CircleCI CLI maakt het mogelijk om configuraties lokaal te valideren en uit te voeren, orbs te beheren en logs te bekijken. Het platform integreert met GitHub, GitHub Enterprise, Bitbucket en GitLab via een webhooks-systeem.

CircleCI-architectuur: Orbs, Executors en Contexts

De CircleCI-architectuur omvat drie niveaus: Pipeline, Workflow en Job. Pipeline — is het hoofdproces, geactiveerd bij een commit. Pipeline bestaat uit Workflows — een graaf van Jobs die sequentieel of parallel kunnen worden uitgevoerd. Elke Job wordt uitgevoerd op een Executor — een omgeving met een specifieke image. Workflow kan approval gates bevatten — handmatige bevestiging vóór implementatie.

Orbs — zijn herbruikbare YAML-configuratiepakketten, gedistribueerd via de CircleCI Orb Registry. Een Orb kan bevatten jobs, commands, executors en voorbeelden. Populaire orbs: android, ios, flutter, firebase, slack. Het aansluiten van een android orb vervangt bijvoorbeeld 50+ regels configuratie door één regel. CircleCI CLI maakt het mogelijk om eigen orbs te maken, testen en publiceren voor standaardisatie van pipelines in de organisatie.

Soorten Executors

ExecutorGeschikt voorBuild
DockerAndroid, BackendLinux-container
macOSiOS, macOSmacOS VM met Xcode
MachineDocker-in-DockerUbuntu VM
Windows.NET, WinUIWindows Server

Contexts — zijn benoemde sets van omgevingsvariabelen, beschikbaar op organisatieniveau. Bijvoorbeeld, de context app-store-credentials bevat Apple ID en wachtwoord voor publicatie in de App Store. Dit vereenvoudigt het beheer van secrets tussen projecten zonder duplicatie.

CircleCI configureren voor Android en iOS projecten

Voor een Android-project gebruikt CircleCI de Docker-image cibuilds/android met Android SDK. Typische workflow omvat: checkout, installatie van JDK, caching van Gradle, build, uitvoeren van tests. Voor iOS is een macOS executor met Xcode en configuratie van code signing vereist. Bij de eerste verbinding detecteert CircleCI automatisch het projecttype en genereert het een basisconfiguratie met aanbevolen instellingen.

Voor Flutter-projecten biedt CircleCI de orb circleci/flutter, die executors met vooraf geïnstalleerde Flutter SDK voor Linux en macOS bevat. Orb ondersteunt build voor beide platforms, caching van pub-cache en het uitvoeren van tests. Configuratie beperkt zich tot het specificeren van de Flutter-versie en build-opdrachten. Voor aangepaste versies van Flutter of Dart kan een Docker-image met de benodigde SDK worden gebruikt. Flutter orb ondersteunt ook geavanceerde opties — bijvoorbeeld code-analyse via dart analyze vóór de build.

Android orb — snelle start

Android orb van CircleCI biedt kant-en-klare jobs: build-and-test, deploy-to-play-store. Orb configureert automatisch de omgeving, caching en ondertekening. Na het aansluiten van de orb volstaat het om de SDK-versie en build-opdrachten op te geven.

iOS build met macOS executor

Voor iOS-build wordt de executor opgegeven: macos met xcode-versie. CircleCI biedt images met Xcode 14, 15 en 16. Na checkout wordt de code gecompileerd via xcodebuild, worden tests uitgevoerd op de simulator. Code signing wordt geconfigureerd via fastlane match of handmatige installatie van certificaten.

Caching en parallelle uitvoering

Caching — is een sleutelelement van CircleCI-prestaties. Het cache-mechanisme bewaart mappen tussen workflow-runs op basis van een sleutel. Voor Gradle wordt ~/.gradle gecachet, voor CocoaPods — Pods/, voor npm/SPM — node_modules/.build. Bij wijziging van het lock-bestand wordt de cache automatisch bijgewerkt. CircleCI ondersteunt aparte beleidsregels: save_cache kan worden uitgesteld (when: always), terwijl restore_cache verplicht is.

Parallelism in combinatie met resource class maakt het mogelijk om de build-prestaties nauwkeurig af te stellen. Resource class bepaalt de hoeveelheid CPU en RAM voor de container: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) en large (4 CPU, 8 GB). Voor iOS-builds met Xcode wordt aanbevolen een macOS executor te gebruiken met resource class medium of larger — compilatie van Swift-code vereist aanzienlijke resources.

Parallelism verdeelt tests over meerdere containers, waardoor de uitvoeringstijd wordt verkort. Bijvoorbeeld: parallelism: 4 voert tests uit in 4 parallelle containers. CircleCI verdeelt automatisch testbestanden over de containers. Het commando circleci tests glob verzamelt de lijst met tests, en circleci tests split verdeelt ze gelijkmatig.

Voorbeeld van 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

Voorbeeldconfiguratie .circleci/config.yml

Laten we een volledige CircleCI-configuratie bekijken voor een Android-project met twee jobs: build en test. De configuratie omvat Docker executor met Android SDK, Gradle caching en parallelle testuitvoering. Artifacts worden bewaard om te downloaden. De workflow build-and-test voert beide jobs uit bij elke push naar de hoofd 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: kant-en-klare oplossingen voor CI/CD

Bij de keuze tussen CircleCI en alternatieven — als het team GitHub gebruikt, kan GitHub Actions een eenvoudigere keuze zijn. CircleCI heeft de voorkeur voor teams die flexibele parallel test execution, aanpassing van de executor-omgeving en gedetailleerde build-statistieken nodig hebben. CircleCI Insights biedt een dashboard met prestatiemetrics van pipelines: gemiddelde buildtijd, trends en knelpunten. Insights helpt bij het identificeren van langlopende jobs en het optimaliseren ervan. CircleCI API maakt programmatisch beheer van pipelines, het starten van builds en het verkrijgen van metrics mogelijk.

Voor veilig werken met secrets ondersteunt CircleCI Contexts — benoemde sets van omgevingsvariabelen op organisatieniveau. Contexts zijn beveiligd met rolgebaseerde toegang: alleen bepaalde teams kunnen een specifieke context gebruiken. De context production-deploy bevat bijvoorbeeld App Store Connect-sleutels en is alleen beschikbaar voor lead-ontwikkelaars. In combinatie met approval gates vormt dit een volwaardig CI/CD-beveiligingssysteem.

CircleCI Orb Registry bevat honderden kant-en-klare pakketten voor verschillende CI/CD-taken. Voor mobiele ontwikkeling omvatten belangrijke orbs: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution. Elke orb is voorzien van versiebeheer en documentatie. Orbs kunnen openbaar (toegankelijk voor iedereen) en privé (alleen voor uw organisatie) zijn.

Het gebruik van orbs verkort de configuratie met 5–10 keer. Bijvoorbeeld, de orb circleci/android biedt de executor android/default met vooraf geïnstalleerde SDK en de commando's restore-gradle-cache, save-gradle-cache. De orb circleci/ios bevat een executor met Xcode en commando's voor code signing via fastlane. Orbs kunnen eenvoudig worden gecombineerd: sluit een android orb aan voor de build en een slack orb voor meldingen.

CircleCI biedt ook ingebouwde ondersteuning voor testrapporten. Store_test_results parseert en visualiseert automatisch testresultaten van JUnit, XCTest en andere formaten. Voor mobiele projecten betekent dit gecentraliseerd inzicht in mislukte tests, trends in uitvoeringstijd en geschiedenis van build-stabiliteit, wat het onderhoud van codekwaliteit vereenvoudigt.

Voorbeeld met 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

Publicatie van een aangepaste orb is beschikbaar via CircleCI CLI. De commando's circleci orb create en circleci orb publish laden de orb in het register. Dit is handig voor standaardisatie van CI/CD binnen de organisatie — eenmaal gemaakt, gebruikt in alle projecten.

Veelgestelde vragen

Hoeveel kost CircleCI?

CircleCI biedt een gratis plan met 6000 minuten per maand voor één container. Performance Plan ($30/maand) omvat 10 parallelle jobs en 14000 minuten. Scale Plan — individuele prijzen met onbeperkte parallelliteit.

Wat zijn orbs in CircleCI?

Orbs — zijn herbruikbare YAML-pakketten van CircleCI-configuratie, gedistribueerd via het officiële register. Ze bevatten kant-en-klare jobs, commands en executors voor populaire tools en platforms.

Ondersteunt CircleCI iOS-builds?

Ja, CircleCI ondersteunt macOS executor met vooraf geïnstalleerde Xcode (versies 14, 15, 16). Images zijn beschikbaar voor iOS 17 en 18, watchOS, tvOS. Code signing wordt geconfigureerd via fastlane match of handmatig.

Hoe werkt parallel test execution in CircleCI?

Specificeer parallelism: N in de job — CircleCI verdeelt de tests over N containers. Het commando circleci tests split verdeelt de tests gelijkmatig. Tests worden parallel uitgevoerd, de totale tijd neemt proportioneel af met het aantal containers.

Hoe verschilt CircleCI van GitHub Actions?

CircleCI biedt flexibelere executors (Docker, macOS, Machine, Windows), een geavanceerd orbs-systeem, ingebouwde parallel test splitting en gedetailleerde build-artefacten. GitHub Actions blinkt uit in integratie met GitHub en eenvoud.

Samenvatting

  • CircleCI — cloud CI/CD-platform met ondersteuning voor Docker, macOS en Windows executors voor mobiele projecten
  • Orbs — kant-en-klare YAML-configuratiepakketten die het instellen van pipelines 5–10 keer verkorten
  • Executor bepaalt de uitvoeringsomgeving — Docker voor Android, macOS VM voor iOS, Machine voor Docker-in-Docker
  • Parallelism verdeelt tests over meerdere containers, waardoor de uitvoeringstijd proportioneel wordt verkort
  • Caching via restore_cache en save_cache versnelt de build 3–5 keer met de juiste sleutelinstelling
  • Contexts — veilige opslag van secrets op organisatieniveau met toegang tussen projecten
  • iOS orb en Android orb bieden kant-en-klare jobs voor het bouwen, testen en implementeren van mobiele applicaties

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook