CircleCI: بنیادی باتیں، orbs اور مسلسل انضمام

مصنف: IT Sectr اشاعت: 2026-04-13 مطالعے کا وقت: 8 منٹ

CircleCI ایک کلاؤڈ CI/CD پلیٹ فارم ہے جو iOS اور Android کے لیے موبائل ایپلیکیشنز سمیت سافٹ ویئر کی بلڈ، ٹیسٹنگ اور ڈیپلائیمنٹ کو خودکار کرتا ہے۔ CircleCI، 2024 کے مطابق، پلیٹ فارم ماہانہ 30 ملین سے زیادہ بلڈز پروسیس کرتا ہے اور orbs — مقبول ٹولز کے لیے تیار کنفیگریشن پیکجز — پر مبنی ایک منفرد آرکیٹیکچر پیش کرتا ہے۔

اہم نکات

  • CircleCI — موبائل بلڈز، Docker اور macOS ماحول کی حمایت کے ساتھ کلاؤڈ CI/CD پلیٹ فارم
  • Orb — تیار YAML کنفیگریشن پیکیج جو مقبول ٹولز اور سروسز کی سیٹ اپ کو آسان بناتا ہے
  • Executor — جاب پر عملدرآمد کا ماحول: Docker امیج، Linux VM، macOS یا Windows
  • Parallelism — متوازی عملدرآمد کے لیے ٹیسٹوں کو متعدد کنٹینرز میں تقسیم کرنا
  • Caching رنز کے درمیان انحصار کو محفوظ رکھتا ہے، بلڈ کے وقت کو 3–5 گنا کم کرتا ہے

CircleCI کیا ہے؟

CircleCI ایک کلاؤڈ CI/CD پلیٹ فارم ہے جو 2011 میں قائم کیا گیا تھا۔ یہ سسٹم آپ کو YAML فائل .circleci/config.yml میں پائپ لائنوں کو بیان کرنے اور انہیں الگ تھلگ کنٹینرز یا ورچوئل مشینوں میں چلانے کی اجازت دیتا ہے۔ CircleCI Android، iOS، Flutter اور React Native سمیت تمام مقبول زبانوں اور پلیٹ فارمز کو سپورٹ کرتا ہے۔

موبائل ڈویلپمنٹ کے لیے، CircleCI iOS بلڈز کے لیے پہلے سے نصب Xcode کے ساتھ macOS executor، Android SDK کے ساتھ Linux executor، نیز Gradle اور CocoaPods کے لیے کیشنگ فراہم کرتا ہے۔ ایک اہم خصوصیت orbs ہے، جو ایک لائن میں تیار کنفیگریشنز کو پلگ ان کرنے کی اجازت دیتا ہے: orb: android، orb: ios، orb: flutter۔ CircleCI خود بخود پروجیکٹ کی قسم کا پتہ لگاتا ہے اور پہلی بار ریپوزٹری منسلک کرنے پر ایک ٹیمپلیٹ کنفیگریشن تجویز کرتا ہے۔

پلیٹ فارم ڈیبگنگ کے لیے چلنے والے کنٹینرز تک SSH رسائی فراہم کرتا ہے — ناکام بلڈز کی ٹربل شوٹنگ کے لیے ایک مفید خصوصیت۔ CircleCI CLI آپ کو مقامی طور پر کنفیگریشنز کی تصدیق اور چلانے، orbs کا نظم کرنے اور لاگز دیکھنے کی اجازت دیتا ہے۔ پلیٹ فارم ویب ہک سسٹم کے ذریعے GitHub، GitHub Enterprise، Bitbucket اور GitLab کے ساتھ مربوط ہوتا ہے۔

CircleCI کا آرکیٹیکچر: Orbs، Executors اور Contexts

CircleCI کا آرکیٹیکچر تین سطحوں پر مشتمل ہے: Pipeline، Workflow اور Job۔ Pipeline ایک بنیادی عمل ہے جو کمٹ پر متحرک ہوتا ہے۔ Pipeline Workflows پر مشتمل ہوتا ہے — Jobs کا ایک گراف جو ترتیب وار یا متوازی طور پر چل سکتا ہے۔ ہر Job ایک Executor — ایک مخصوص امیج والے ماحول — پر چلتا ہے۔ Workflow میں approval gates — ڈیپلائیمنٹ سے پہلے دستی تصدیق — شامل ہو سکتے ہیں۔

Orbs دوبارہ استعمال کے قابل YAML کنفیگریشن پیکیج ہیں جو CircleCI Orb Registry کے ذریعے تقسیم کیے جاتے ہیں۔ ایک Orb میں jobs، commands، executors اور مثالیں شامل ہو سکتی ہیں۔ مقبول orbs: android، ios، flutter، firebase، slack۔ مثال کے طور پر، android orb شامل کرنا 50+ لائنوں کو ایک لائن سے بدل دیتا ہے۔ CircleCI CLI آپ کو تنظیم میں پائپ لائنوں کو معیاری بنانے کے لیے اپنے orbs بنانے، جانچنے اور شائع کرنے کی اجازت دیتا ہے۔

Executor کی اقسام

Executorکے لیے موزوںبلڈ ماحول
DockerAndroid، BackendLinux کنٹینر
macOSiOS، macOSXcode کے ساتھ macOS VM
MachineDocker-in-DockerUbuntu VM
Windows.NET، WinUIWindows Server

Contexts تنظیم کی سطح پر دستیاب ماحولیاتی متغیرات کے نامی سیٹ ہیں۔ مثال کے طور پر، app-store-credentials سیاق و سباق میں App Store پر شائع کرنے کے لیے Apple ID اور پاس ورڈ ہوتا ہے۔ یہ نقل کے بغیر پروجیکٹس کے درمیان secrets کے انتظام کو آسان بناتا ہے۔

Android اور iOS پروجیکٹس کے لیے CircleCI سیٹ اپ

Android پروجیکٹ کے لیے، CircleCI Android SDK کے ساتھ cibuilds/android Docker امیج استعمال کرتا ہے۔ ایک عام ورک فلو میں شامل ہے: checkout، JDK انسٹالیشن، Gradle کیشنگ، بلڈ، ٹیسٹ چلانا۔ iOS کے لیے Xcode اور کوڈ سائننگ سیٹ اپ کے ساتھ macOS executor کی ضرورت ہوتی ہے۔ پہلی بار منسلک ہونے پر، CircleCI خود بخود پروجیکٹ کی قسم کا پتہ لگاتا ہے اور تجویز کردہ ترتیبات کے ساتھ ایک بنیادی کنفیگریشن تیار کرتا ہے۔

Flutter پروجیکٹس کے لیے، CircleCI circleci/flutter orb فراہم کرتا ہے، جس میں Linux اور macOS کے لیے پہلے سے نصب Flutter SDK کے ساتھ executors شامل ہیں۔ Orb معاونت کرتا ہے دونوں پلیٹ فارمز کے لیے بلڈ، pub-cache کیشنگ اور ٹیسٹ چلانا۔ سیٹ اپ Flutter ورژن اور بلڈ کمانڈز بتانے تک محدود ہے۔ اپنی مرضی کے Flutter یا Dart ورژن کے لیے ضروری SDK کے ساتھ Docker امیج استعمال کی جا سکتی ہے۔ Flutter orb جدید اختیارات بھی سپورٹ کرتا ہے — مثال کے طور پر، بلڈ سے پہلے dart analyze کے ذریعے کوڈ کا تجزیہ۔

Android Orb — فوری شروع

CircleCI کا Android orb تیار jobs فراہم کرتا ہے: build-and-test، deploy-to-play-store۔ Orb خود بخود ماحول، کیشنگ اور دستخط کو ترتیب دیتا ہے۔ Orb شامل کرنے کے بعد، آپ کو صرف SDK ورژن اور بلڈ کمانڈز بتانے کی ضرورت ہے۔

macOS Executor کے ساتھ iOS بلڈ

iOS بلڈ کے لیے، executor کو Xcode ورژن کے ساتھ macos پر سیٹ کیا جاتا ہے۔ CircleCI فراہم کرتا ہے Xcode 14، 15 اور 16 کے ساتھ امیجز۔ Checkout کے بعد، کوڈ xcodebuild کے ذریعے مرتب کیا جاتا ہے اور ٹیسٹ سمیلیٹر پر چلائے جاتے ہیں۔ کوڈ سائننگ fastlane match یا دستی سرٹیفکیٹ انسٹالیشن کے ذریعے ترتیب دی جاتی ہے۔

کیشنگ اور متوازی عملدرآمد

کیشنگ CircleCI میں کارکردگی کا ایک اہم عنصر ہے۔ کیش میکنزم ایک کلید کا استعمال کرتے ہوئے ورک فلو رنز کے درمیان ڈائریکٹریوں کو محفوظ کرتا ہے۔ Gradle کے لیے، ~/.gradle کیش کیا جاتا ہے؛ CocoaPods کے لیے — Pods/؛ npm/SPM کے لیے — node_modules/.build۔ جب لاک فائل تبدیل ہوتی ہے، کیش خود بخود اپ ڈیٹ ہو جاتا ہے۔ CircleCI علیحدہ پالیسیوں کو سپورٹ کرتا ہے: save_cache میں تاخیر ہو سکتی ہے (when: always)، جبکہ restore_cache لازمی ہے۔

متوازیت resource class کے ساتھ مل کر بلڈ کارکردگی کو ٹھیک ٹیون کرنے کی اجازت دیتی ہے۔ Resource class ایک کنٹینر کے لیے CPU اور RAM کا تعین کرتا ہے: small (1 CPU، 2 GB)، medium (2 CPU، 4 GB)، medium+ (3 CPU، 5 GB) اور large (4 CPU، 8 GB)۔ Xcode کے ساتھ iOS بلڈز کے لیے، medium یا larger resource class کے ساتھ macOS executor استعمال کرنے کی سفارش کی جاتی ہے — Swift کوڈ کی تیاری کے لیے اہم وسائل درکار ہوتے ہیں۔

متوازیت ٹیسٹوں کو متعدد کنٹینرز میں تقسیم کرتی ہے، چلنے کے وقت کو کم کرتی ہے۔ مثال کے طور پر: parallelism: 4 ٹیسٹوں کو 4 متوازی کنٹینرز میں چلاتا ہے۔ CircleCI خود بخود ٹیسٹ فائلوں کو کنٹینرز کے درمیان تقسیم کرتا ہے۔ circleci tests glob کمانڈ ٹیسٹ کی فہرست جمع کرتا ہے، اور circleci tests split انہیں یکساں طور پر تقسیم کرتا ہے۔

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

.circleci/config.yml کنفیگریشن کی مثال

آئیے دو jobs — build اور test — کے ساتھ Android پروجیکٹ کے لیے ایک مکمل CircleCI کنفیگریشن دیکھتے ہیں۔ کنفیگریشن میں شامل ہے Android SDK کے ساتھ Docker executor، Gradle کیشنگ اور متوازی ٹیسٹ عملدرآمد۔ Artifacts ڈاؤن لوڈ کے لیے محفوظ کیے جاتے ہیں۔ build-and-test ورک فلو مین برانچ پر ہر push پر دونوں jobs چلاتا ہے۔

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 حل

CircleCI اور متبادل کے درمیان انتخاب کرتے وقت — اگر آپ کی ٹیم GitHub استعمال کرتی ہے، تو GitHub Actions ایک آسان انتخاب ہو سکتا ہے۔ CircleCI ان ٹیموں کے لیے بہتر ہے جنہیں لچکدار متوازی ٹیسٹ عملدرآمد، کسٹم executor ماحول کی ترتیب اور تفصیلی بلڈ کے اعدادوشمار کی ضرورت ہوتی ہے۔ CircleCI Insights پائپ لائن کارکردگی کے میٹرکس کے ساتھ ایک ڈیش بورڈ فراہم کرتا ہے: اوسط بلڈ ٹائم، رجحانات اور رکاوٹیں۔ Insights طویل چلنے والی jobs کی شناخت اور انہیں بہتر بنانے میں مدد کرتا ہے۔ CircleCI API آپ کو پروگرام کے ذریعے پائپ لائنوں کا نظم کرنے، بلڈز شروع کرنے اور میٹرکس حاصل کرنے کی اجازت دیتا ہے۔

محفوظ secrets کے انتظام کے لیے، CircleCI Contexts — تنظیم کی سطح پر ماحولیاتی متغیرات کے نامی سیٹ — کو سپورٹ کرتا ہے۔ Contexts کردار پر مبنی رسائی کے ذریعے محفوظ ہیں: صرف مخصوص ٹیمیں کسی خاص سیاق و سباق کو استعمال کر سکتی ہیں۔ مثال کے طور پر، production-deploy سیاق و سباق میں App Store Connect کی چابیاں ہوتی ہیں اور یہ صرف لیڈ ڈویلپرز کے لیے دستیاب ہے۔ منظوری کے دروازوں کے ساتھ مل کر، یہ ایک جامع CI/CD سیکیورٹی سسٹم تشکیل دیتا ہے۔

CircleCI Orb Registry میں مختلف CI/CD کاموں کے لیے سینکڑوں تیار پیکیج ہیں۔ موبائل ڈویلپمنٹ کے لیے، اہم orbs میں شامل ہیں: circleci/android، circleci/ios، circleci/flutter، laurencerussell/firebase-app-distribution۔ ہر orb کا ورژن اور دستاویزات ہیں۔ Orbs عوامی (سب کے لیے دستیاب) یا نجی (صرف آپ کی تنظیم کے لیے) ہو سکتے ہیں۔

Orbs کا استعمال کنفیگریشن کو 5–10 گنا کم کرتا ہے۔ مثال کے طور پر، circleci/android orb پہلے سے نصب SDK اور restore-gradle-cache، save-gradle-cache کمانڈز کے ساتھ android/default executor فراہم کرتا ہے۔ circleci/ios orb میں Xcode کے ساتھ ایک executor اور fastlane کے ذریعے کوڈ سائننگ کے لیے کمانڈز شامل ہیں۔ Orbs کو آسانی سے ملایا جا سکتا ہے: بلڈ کے لیے android orb اور اطلاعوں کے لیے slack orb شامل کریں۔

CircleCI بلٹ ان ٹیسٹ رپورٹ سپورٹ بھی پیش کرتا ہے۔ Store_test_results خود بخود JUnit، XCTest اور دیگر فارمیٹس سے ٹیسٹ کے نتائج کو پارس اور ویژولائز کرتا ہے۔ موبائل پروجیکٹس کے لیے، اس کا مطلب ہے ناکام ٹیسٹوں، رن ٹائم رجحانات اور بلڈ استحکام کی تاریخ کا مرکزی نظارہ، جو کوڈ کے معیار کی دیکھ بھال کو آسان بناتا ہے۔

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

کسٹم orb شائع کرنا CircleCI CLI کے ذریعے دستیاب ہے۔ circleci orb create اور circleci orb publish کمانڈز orb کو رجسٹری پر اپ لوڈ کرتی ہیں۔ یہ تنظیم کے اندر CI/CD کو معیاری بنانے کے لیے مفید ہے — ایک بار بنائیں، تمام پروجیکٹس میں استعمال کریں۔

اکثر پوچھے گئے سوالات

CircleCI کی قیمت کتنی ہے؟

CircleCI ایک مفت منصوبہ پیش کرتا ہے جس میں ایک کنٹینر کے لیے ماہانہ 6000 منٹ شامل ہیں۔ Performance Plan ($30/ماہ) میں 10 متوازی jobs اور 14,000 منٹ شامل ہیں۔ Scale Plan — لامحدود متوازیت کے ساتھ حسب ضرورت قیمت۔

CircleCI میں orbs کیا ہیں؟

Orbs دوبارہ استعمال کے قابل YAML کنفیگریشن پیکیج ہیں جو سرکاری رجسٹری کے ذریعے تقسیم کیے جاتے ہیں۔ ان میں مقبول ٹولز اور پلیٹ فارمز کے لیے تیار jobs، commands اور executors شامل ہیں۔

کیا CircleCI iOS بلڈز کو سپورٹ کرتا ہے؟

ہاں، CircleCI پہلے سے نصب Xcode (ورژن 14، 15، 16) کے ساتھ macOS executor کو سپورٹ کرتا ہے۔ iOS 17 اور 18، watchOS اور tvOS کے لیے امیجز دستیاب ہیں۔ کوڈ سائننگ fastlane match یا دستی طور پر ترتیب دی جاتی ہے۔

CircleCI میں متوازی ٹیسٹ عملدرآمد کیسے کام کرتا ہے؟

Job میں parallelism: N بتائیں — CircleCI ٹیسٹوں کو N کنٹینرز میں تقسیم کرے گا۔ circleci tests split کمانڈ ٹیسٹوں کو یکساں طور پر تقسیم کرتا ہے۔ ٹیسٹ متوازی طور پر چلتے ہیں، کنٹینرز کی تعداد کے تناسب سے کل وقت کم ہوتا ہے۔

CircleCI GitHub Actions سے کیسے مختلف ہے؟

CircleCI زیادہ لچکدار executors (Docker، macOS، Machine، Windows)، ایک جدید orb سسٹم، بلٹ ان متوازی ٹیسٹ تقسیم اور تفصیلی بلڈ artifacts پیش کرتا ہے۔ GitHub Actions GitHub انضمام اور سادگی میں بہتر ہے۔

خلاصہ

  • CircleCI — موبائل پروجیکٹس کے لیے Docker، macOS اور Windows executors کے ساتھ کلاؤڈ CI/CD پلیٹ فارم
  • Orbs — تیار YAML کنفیگریشن پیکیج جو پائپ لائن سیٹ اپ کو 5–10 گنا کم کرتے ہیں
  • Executor عملدرآمد کے ماحول کی وضاحت کرتا ہے — Android کے لیے Docker، iOS کے لیے macOS VM، Docker-in-Docker کے لیے Machine
  • Parallelism ٹیسٹوں کو متعدد کنٹینرز میں تقسیم کرتا ہے، چلنے کے وقت کو متناسب طور پر کم کرتا ہے
  • Caching restore_cache اور save_cache کے ذریعے مناسب کلید ترتیب کے ساتھ بلڈز کو 3–5 گنا تیز کرتا ہے
  • Contexts — کراس پروجیکٹ رسائی کے ساتھ تنظیم کی سطح پر محفوظ اسٹوریج
  • iOS orb اور Android orb موبائل ایپس کی بلڈ، ٹیسٹ اور ڈیپلائیمنٹ کے لیے تیار jobs فراہم کرتے ہیں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں