CircleCI: asoslar, orbs va uzluksiz integratsiya

Muallif: IT Sectr Nashr etilgan: 2026-04-13 O'qish vaqti: 8 daq

CircleCI — iOS va Android mobil ilovalarini ham o'z ichiga olgan dasturiy ta'minotni qurish, testlash va joylashtirishni avtomatlashtirish uchun bulutli CI/CD platformasidir. CircleCI, 2024 ma'lumotlariga ko'ra, platforma oyiga 30 milliondan ortiq qurilishni qayta ishlaydi va mashhur vositalar uchun tayyor konfiguratsiya paketlari — orbs asosida noyob arxitekturani taklif etadi.

Asosiy fikrlar

  • CircleCI — mobil qurilishlar, Docker va macOS muhitini qo'llab-quvvatlovchi bulutli CI/CD platformasi
  • Orb — mashhur vositalar va xizmatlarni sozlashni soddalashtiradigan tayyor YAML konfiguratsiya paketi
  • Executor — job bajarish muhiti: Docker tasviri, Linux VM, macOS yoki Windows
  • Parallelism — parallel bajarish uchun testlarni bir nechta konteynerga bo'lish
  • Caching ishga tushirishlar orasida bog'liqliklarni saqlaydi, qurilish vaqtini 3–5 barobar qisqartiradi

CircleCI nima?

CircleCI — 2011-yilda asos solingan bulutli CI/CD platformasidir. Tizim pipeline'larni .circleci/config.yml YAML faylida tasvirlash va ularni izolyatsiya qilingan konteynerlar yoki virtual mashinalarda bajarish imkonini beradi. CircleCI Android, iOS, Flutter va React Native-ni o'z ichiga olgan barcha mashhur tillar va platformalarni qo'llab-quvvatlaydi.

Mobil ishlanma uchun CircleCI oldindan o'rnatilgan Xcode bilan iOS qurilishi uchun macOS executorlarni, Android SDK bilan Android uchun Linux executorlarni, shuningdek Gradle va CocoaPods keshlashni taklif etadi. Asosiy xususiyat — bir qator bilan tayyor konfiguratsiyalarni ulash imkonini beruvchi orbs: orb: android, orb: ios, orb: flutter. CircleCI avtomatik ravishda loyiha turini aniqlaydi va repozitoriy birinchi ulanganda shablon konfiguratsiyasini taklif qiladi.

Platforma nosozliklarni tuzatish uchun ishlayotgan konteynerlarga SSH kirishini qo'llab-quvvatlaydi — muvaffaqiyatsiz qurilishlarni tahlil qilishda foydali funksiya. CircleCI CLI konfiguratsiyalarni mahalliy tekshirish va ishga tushirish, orbs boshqarish va loglarni ko'rish imkonini beradi. Platforma webhooks tizimi orqali GitHub, GitHub Enterprise, Bitbucket va GitLab bilan integratsiyalanadi.

CircleCI arxitekturasi: Orbs, Executors va Contexts

CircleCI arxitekturasi uch darajani o'z ichiga oladi: Pipeline, Workflow va Job. Pipeline — commit vaqtida ishga tushiriladigan asosiy jarayon. Pipeline Workflows — ketma-ket yoki parallel bajarilishi mumkin bo'lgan Jobs grafigidan iborat. Har bir Job Executor — ma'lum tasvirga ega muhitda bajariladi. Workflow joylashtirishdan oldin qo'lda tasdiqlash — approval gates-ni o'z ichiga olishi mumkin.

Orbs — CircleCI Orb Registry orqali tarqatiladigan qayta foydalaniladigan YAML konfiguratsiya paketlaridir. Orb tarkibida jobs, commands, executors va namunalar bo'lishi mumkin. Mashhur orbs: android, ios, flutter, firebase, slack. Masalan, android orb ulanishi 50+ qator konfiguratsiyani bir qator bilan almashtiradi. CircleCI CLI tashkilotda pipeline'larni standartlashtirish uchun o'z orbs yaratish, testlash va nashr qilish imkonini beradi.

Executor turlari

ExecutorMos keladiQurilish
DockerAndroid, BackendLinux konteyner
macOSiOS, macOSXcode bilan macOS VM
MachineDocker-in-DockerUbuntu VM
Windows.NET, WinUIWindows Server

Contexts — tashkilot darajasida mavjud bo'lgan nomlangan muhit o'zgaruvchilari to'plamidir. Masalan, app-store-credentials konteksti App Store-da nashr qilish uchun Apple ID va parolni o'z ichiga oladi. Bu takrorlanmasdan loyihalar orasida sirlarni boshqarishni soddalashtiradi.

Android va iOS loyihalari uchun CircleCI sozlash

Android loyihasi uchun CircleCI Android SDK bilan cibuilds/android Docker tasviridan foydalanadi. Oddiy workflow o'z ichiga oladi: checkout, JDK o'rnatish, Gradle keshlash, qurilish, testlarni ishga tushirish. iOS uchun Xcode va code signing sozlamalari bilan macOS executor talab qilinadi. Birinchi ulanishda CircleCI avtomatik ravishda loyiha turini aniqlaydi va tavsiya etilgan sozlamalar bilan asosiy konfiguratsiya yaratadi.

Flutter loyihalari uchun CircleCI Linux va macOS uchun oldindan o'rnatilgan Flutter SDK bilan executorlarni o'z ichiga olgan circleci/flutter orb-ni taklif etadi. Orb qo'llab-quvvatlaydi ikkala platforma uchun qurilish, pub-cache keshlash va testlarni ishga tushirish. Sozlash Flutter versiyasi va qurilish buyruqlarini ko'rsatishgacha qisqaradi. Maxsus Flutter yoki Dart versiyalari uchun kerakli SDK bilan Docker tasviridan foydalanish mumkin. Flutter orb shuningdek ilg'or variantlarni qo'llab-quvvatlaydi — masalan, qurilishdan oldin dart analyze orqali kod tahlili.

Android orb — tezkor boshlash

CircleCI dan Android orb tayyor jobs-larni taklif etadi: build-and-test, deploy-to-play-store. Orb avtomatik muhitni, keshlashni va imzolashni sozlaydi. Orb ulangandan so'ng, SDK versiyasi va qurilish buyruqlarini ko'rsatish kifoya.

macOS executor bilan iOS qurilishi

iOS qurilishi uchun executor ko'rsatiladi: macos xcode versiyasi bilan. CircleCI ta'minlaydi Xcode 14, 15 va 16 bilan tasvirlar. Checkout-dan so'ng kod xcodebuild orqali kompilyatsiya qilinadi, testlar simulyatorda ishga tushiriladi. Code signing fastlane match yoki sertifikatlarni qo'lda o'rnatish orqali sozlanadi.

Keshlash va parallel bajarish

Keshlash — CircleCI unumdorligining asosiy elementidir. Cache mexanizmi kalit bo'yicha workflow ishga tushirishlari orasida kataloglarni saqlaydi. Gradle uchun ~/.gradle, CocoaPods uchun — Pods/, npm/SPM uchun — node_modules/.build keshlanadi. Lock fayli o'zgarganda cache avtomatik yangilanadi. CircleCI alohida siyosatlarni qo'llab-quvvatlaydi: save_cache kechiktirilishi mumkin (when: always), restore_cache esa majburiydir.

Parallelism resource class bilan birgalikda qurilish unumdorligini aniq sozlash imkonini beradi. Resource class konteyner uchun CPU va RAM miqdorini belgilaydi: small (1 CPU, 2 GB), medium (2 CPU, 4 GB), medium+ (3 CPU, 5 GB) va large (4 CPU, 8 GB). Xcode bilan iOS qurilishlari uchun resource class medium yoki larger bilan macOS executoridan foydalanish tavsiya etiladi — Swift kodini kompilyatsiya qilish muhim resurslarni talab qiladi.

Parallelism testlarni bir nechta konteynerga bo'ladi, bajarish vaqtini qisqartiradi. Masalan: parallelism: 4 testlarni 4 parallel konteynerda ishga tushiradi. CircleCI avtomatik ravishda test fayllarini konteynerlar orasida taqsimlaydi. circleci tests glob buyrug'i testlar ro'yxatini yig'adi, circleci tests split esa ularni teng taqsimlaydi.

Gradle keshlash namunasi

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

.circleci/config.yml konfiguratsiya namunasi

Ikkita job bilan Android loyihasi uchun to'liq CircleCI konfiguratsiyasini ko'rib chiqaylik: build va test. Konfiguratsiya o'z ichiga oladi Android SDK bilan Docker executor, Gradle keshlash va parallel test ishga tushirish. Artifacts yuklab olish uchun saqlanadi. build-and-test workflow asosiy branch-ga har bir push-da ikkala job-ni ishga tushiradi.

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: CI/CD uchun tayyor yechimlar

CircleCI va alternativlar o'rtasida tanlashda — agar jamoa GitHub-dan foydalansa, GitHub Actions oddiyroq tanlov bo'lishi mumkin. CircleCI moslashuvchan parallel test execution, executor muhitini sozlash va batafsil qurilish statistikasini talab qiladigan jamoalar uchun afzalroqdir. CircleCI Insights pipeline unumdorligi ko'rsatkichlari bilan dashboard taqdim etadi: o'rtacha qurilish vaqti, trendlar va tor joylar. Insights uzoq davom etadigan job-larni aniqlash va ularni optimallashtirishga yordam beradi. CircleCI API pipeline'larni dasturiy boshqarish, qurilishlarni ishga tushirish va ko'rsatkichlarni olish imkonini beradi.

Sirli ma'lumotlar bilan xavfsiz ishlash uchun CircleCI Contexts — tashkilot darajasidagi nomlangan muhit o'zgaruvchilari to'plamini qo'llab-quvvatlaydi. Contexts himoyalangan rolga asoslangan kirish bilan: faqat ma'lum jamoalar muayyan context-dan foydalanishi mumkin. Masalan, production-deploy konteksti App Store Connect kalitlarini o'z ichiga oladi va faqat lead dasturchilar uchun mavjud. Approval gates bilan birgalikda bu to'liq CI/CD xavfsizlik tizimini shakllantiradi.

CircleCI Orb Registry turli CI/CD vazifalari uchun yuzlab tayyor paketlarni o'z ichiga oladi. Mobil ishlanma uchun asosiy orbs o'z ichiga oladi: circleci/android, circleci/ios, circleci/flutter, laurencerussell/firebase-app-distribution. Har bir orb versiyalanadi va hujjatlashtiriladi. Orbs umumiy (hamma uchun mavjud) va shaxsiy (faqat tashkilotingiz uchun) bo'lishi mumkin.

Orbs dan foydalanish konfiguratsiyani 5–10 barobar qisqartiradi. Masalan, circleci/android orb oldindan o'rnatilgan SDK bilan android/default executor va restore-gradle-cache, save-gradle-cache buyruqlarini ta'minlaydi. circleci/ios orb Xcode bilan executor va fastlane orqali code signing uchun buyruqlarni o'z ichiga oladi. Orbs oson birlashtirilishi mumkin: qurilish uchun android orb va bildirishnomalar uchun slack orb ulash.

CircleCI shuningdek test hisobotlari uchun o'rnatilgan qo'llab-quvvatlashni taklif etadi. Store_test_results avtomatik ravishda JUnit, XCTest va boshqa formatlardagi test natijalarini tahlil qiladi va vizuallashtiradi. Mobil loyihalar uchun bu muvaffaqiyatsiz testlarning markazlashtirilgan ko'rinishi, bajarish vaqti trendlari va qurilish barqarorligi tarixini anglatadi, bu kod sifatini saqlashni soddalashtiradi.

iOS orb bilan misol

yaml
orbs:
  ios: circleci/ios@2.0.0

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

Maxsus orb nashr qilish CircleCI CLI orqali mumkin. circleci orb create va circleci orb publish buyruqlari orb-ni reyestrga yuklaydi. Bu tashkilot ichida CI/CD standartlashtirish uchun foydali — bir marta yaratiladi, barcha loyihalarda ishlatiladi.

Ko'p beriladigan savollar

CircleCI qancha turadi?

CircleCI bitta konteyner uchun oyiga 6000 daqiqa bilan bepul rejani taklif etadi. Performance Plan ($30/oy) 10 parallel job va 14000 daqiqani o'z ichiga oladi. Scale Plan — cheksiz parallellik bilan individual narxlar.

CircleCI-da orbs nima?

Orbs — rasmiy reyestr orqali tarqatiladigan qayta foydalaniladigan YAML paketlari CircleCI konfiguratsiyasidir. Ular mashhur vositalar va platformalar uchun tayyor jobs, commands va executors-ni o'z ichiga oladi.

CircleCI iOS qurilishlarini qo'llab-quvvatlaydimi?

Ha, CircleCI oldindan o'rnatilgan Xcode (versiyalar 14, 15, 16) bilan macOS executor-ni qo'llab-quvvatlaydi. iOS 17 va 18, watchOS, tvOS uchun tasvirlar mavjud. Code signing fastlane match yoki qo'lda sozlanadi.

CircleCI-da parallel test execution qanday ishlaydi?

Job-da parallelism: N ni ko'rsating — CircleCI testlarni N konteynerga bo'ladi. circleci tests split buyrug'i testlarni teng taqsimlaydi. Testlar parallel bajariladi, umumiy vaqt konteynerlar soniga mutanosib ravishda qisqaradi.

CircleCI GitHub Actions dan nimasi bilan farq qiladi?

CircleCI moslashuvchanroq executorlar (Docker, macOS, Machine, Windows), rivojlangan orbs tizimi, o'rnatilgan parallel test splitting va batafsil qurilish artefaktlarini taklif etadi. GitHub Actions GitHub bilan integratsiya va soddalikda ustun.

Xulosa

  • CircleCI — mobil loyihalar uchun Docker, macOS va Windows executorlarini qo'llab-quvvatlovchi bulutli CI/CD platformasi
  • Orbs — pipeline sozlashni 5–10 barobar qisqartiradigan tayyor YAML konfiguratsiya paketlari
  • Executor bajarish muhitini belgilaydi — Android uchun Docker, iOS uchun macOS VM, Docker-in-Docker uchun Machine
  • Parallelism testlarni bir nechta konteynerga bo'ladi, bajarish vaqtini mutanosib ravishda qisqartiradi
  • Keshlash restore_cache va save_cache orqali kalitni to'g'ri sozlash bilan qurilishni 3–5 barobar tezlashtiradi
  • Contexts — loyihalar orasida kirish bilan tashkilot darajasida sirlarni xavfsiz saqlash
  • iOS orb va Android orb mobil ilovalarni qurish, testlash va joylashtirish uchun tayyor jobs-larni ta'minlaydi

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing