CircleCI: الأساسيات، الـ orbs والتكامل المستمر

المؤلف: IT Sectr نُشر: 2026-04-13 وقت القراءة: 8 دق

CircleCI هي منصة CI/CD سحابية لأتمتة بناء واختبار ونشر البرمجيات، بما في ذلك التطبيقات المحمولة لنظامي iOS و Android. وفقًا لـ CircleCI، 2024، تعالج المنصة أكثر من 30 مليون بناء شهريًا وتقدم بنية فريدة تعتمد على الـ orbs — حزم تكوين جاهزة للأدوات الشائعة.

الملخص

  • CircleCI — منصة CI/CD سحابية تدعم البناء المحمول و Docker وبيئات macOS
  • Orb — حزمة تكوين YAML جاهزة تبسط إعداد الأدوات والخدمات الشائعة
  • Executor — بيئة تنفيذ المهام: صورة Docker أو VM Linux أو macOS أو Windows
  • Parallelism — تقسيم الاختبارات عبر حاويات متعددة للتنفيذ المتوازي
  • Caching يحافظ على التبعيات بين عمليات التشغيل، مما يقلل وقت البناء بمقدار 3–5 مرات

ما هو CircleCI؟

CircleCI هي منصة CI/CD سحابية تأسست في عام 2011. يسمح النظام بوصف خطوط الأنابيب في ملف YAML .circleci/config.yml وتنفيذها في حاويات معزولة أو أجهزة افتراضية. يدعم CircleCI جميع اللغات والمنصات الشائعة، بما في ذلك Android و iOS و Flutter و React Native.

للتطوير المحمول، يقدم CircleCI منفذات macOS لبناء iOS مع Xcode مثبت مسبقًا، ومنفذات Linux لنظام Android مع Android SDK، بالإضافة إلى التخزين المؤقت لـ Gradle و CocoaPods. ميزة رئيسية هي الـ orbs، التي تسمح بتوصيل تكوينات جاهزة بسطر واحد: orb: android، orb: ios، orb: flutter. يكتشف CircleCI تلقائيًا نوع المشروع ويقترح تكوينًا نموذجيًا عند توصيل المستودع لأول مرة.

تدعم المنصة الوصول عبر SSH إلى الحاويات قيد التشغيل لتصحيح الأخطاء — وهي ميزة مفيدة عند تحليل حالات البناء الفاشلة. CircleCI CLI يسمح بالتحقق من التكوينات وتشغيلها محليًا، وإدارة الـ orbs وعرض السجلات. تتكامل المنصة مع GitHub و GitHub Enterprise و Bitbucket و GitLab من خلال نظام webhooks.

بنية CircleCI: الـ Orbs والـ Executors والـ Contexts

تتكون بنية CircleCI من ثلاثة مستويات: Pipeline و Workflow و Job. Pipeline هو العملية الجذرية التي يتم تشغيلها عند تنفيذ commit. يتكون Pipeline من Workflows — رسم بياني للمهام (Jobs) التي يمكن تنفيذها بشكل تسلسلي أو متوازي. يتم تنفيذ كل Job على Executor — بيئة بصورة محددة. يمكن أن يتضمن Workflow approval gates — تأكيد يدوي قبل النشر.

الـ Orbs هي حزم تكوين YAML قابلة لإعادة الاستخدام ويتم توزيعها عبر CircleCI Orb Registry. يمكن أن يحتوي Orb على jobs و commands و executors وأمثلة. الـ Orbs الشائعة: android و ios و flutter و firebase و slack. على سبيل المثال، إضافة orb android يستبدل أكثر من 50 سطرًا من التكوين بسطر واحد. يتيح CircleCI CLI إنشاء واختبار ونشر الـ orbs الخاصة بك لتوحيد خطوط الأنابيب عبر المؤسسة.

أنواع الـ Executors

Executorمناسب لـبيئة البناء
DockerAndroid، Backendحاوية Linux
macOSiOS، macOSVM macOS مع Xcode
MachineDocker-in-DockerVM Ubuntu
Windows.NET، WinUIWindows Server

الـ Contexts هي مجموعات مسماة من متغيرات البيئة متاحة على مستوى المؤسسة. على سبيل المثال، سياق app-store-credentials يحتوي على Apple ID وكلمة المرور للنشر في App Store. هذا يبسط إدارة الأسرار عبر المشاريع دون تكرار.

إعداد CircleCI لمشاريع Android و iOS

لمشروع Android، يستخدم CircleCI صورة Docker cibuilds/android مع Android SDK. سير العمل النموذجي يشمل: checkout، تثبيت JDK، التخزين المؤقت لـ Gradle، البناء، تشغيل الاختبارات. لنظام iOS، يلزم وجود executor macOS مع Xcode وإعداد code signing. عند الاتصال لأول مرة، يكتشف CircleCI تلقائيًا نوع المشروع وينشئ تكوينًا أساسيًا بالإعدادات الموصى بها.

لمشاريع Flutter، يوفر CircleCI orb circleci/flutter، الذي يتضمن منفذات مع Flutter SDK مثبت مسبقًا لأنظمة Linux و macOS. يدعم الـ orb البناء لكلا المنصتين، والتخزين المؤقت لـ pub-cache، وتشغيل الاختبارات. يقتصر الإعداد على تحديد إصدار Flutter وأوامر البناء. للإصدارات المخصصة من Flutter أو Dart، يمكن استخدام صورة Docker مع SDK المطلوب. يدعم orb Flutter أيضًا خيارات متقدمة — على سبيل المثال، تحليل الكود عبر dart analyze قبل البناء.

Orb Android — بداية سريعة

يوفر orb Android من CircleCI مهامًا جاهزة: build-and-test، deploy-to-play-store. يقوم الـ orb تلقائيًا بتكوين البيئة والتخزين المؤقت والتوقيع. بعد إضافة الـ orb، كل ما عليك هو تحديد إصدار SDK وأوامر البناء.

بناء iOS مع executor macOS

لبناء iOS، يتم تعيين executor على macos مع إصدار Xcode. يوفر CircleCI صورًا مع Xcode 14 و 15 و 16. بعد checkout، يتم تجميع الكود عبر xcodebuild، وتشغيل الاختبارات على المحاكي. يتم تكوين code signing عبر fastlane match أو التثبيت اليدوي للشهادات.

التخزين المؤقت والتنفيذ المتوازي

التخزين المؤقت هو عنصر أداء رئيسي في CircleCI. آلية التخزين المؤقت تحفظ الدلائل بين تشغيلات workflow باستخدام مفتاح. بالنسبة لـ Gradle، يتم تخزين ~/.gradle مؤقتًا؛ لـ CocoaPods — Pods/؛ لـ npm/SPM — node_modules/.build. عند تغيير ملف القفل، يتم تحديث التخزين المؤقت تلقائيًا. يدعم CircleCI سياسات منفصلة: يمكن تأجيل save_cache (when: always)، بينما restore_cache إلزامية.

التوازي مع resource class يسمح بضبط أداء البناء بدقة. Resource class يحدد عدد وحدات المعالجة المركزية والذاكرة للحاوية: small (1 CPU، 2 GB)، medium (2 CPU، 4 GB)، medium+ (3 CPU، 5 GB) و large (4 CPU، 8 GB). لبنايات iOS مع Xcode، يوصى باستخدام executor macOS مع resource class medium أو larger — تجميع كود 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

لنلق نظرة على تكوين كامل لـ CircleCI لمشروع Android مع مهمتين: build و test. يتضمن التكوين executor Docker مع Android SDK، والتخزين المؤقت لـ Gradle، والتنفيذ المتوازي للاختبارات. يتم حفظ القطع الأثرية للتنزيل. يقوم سير العمل build-and-test بتشغيل كلا المهمتين عند كل push إلى الفرع الرئيسي.

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 في تحديد المهام طويلة التنفيذ وتحسينها. تسمح CircleCI API بإدارة خطوط الأنابيب برمجيًا، وتشغيل البناء، والحصول على المقاييس.

لإدارة الأسرار بشكل آمن، يدعم CircleCI الـ Contexts — مجموعات مسماة من متغيرات البيئة على مستوى المؤسسة. الـ Contexts محمية بواسطة الوصول القائم على الأدوار: فقط فرق محددة يمكنها استخدام سياق معين. على سبيل المثال، سياق production-deploy يحتوي على مفاتيح App Store Connect ومتاح فقط للمطورين الرئيسيين. بالاقتران مع approval gates، يشكل هذا نظام أمان CI/CD شامل.

يحتوي CircleCI Orb Registry على مئات الحزم الجاهزة لمهام CI/CD المختلفة. للتطوير المحمول، تشمل الـ orbs الرئيسية: circleci/android و circleci/ios و circleci/flutter و laurencerussell/firebase-app-distribution. كل orb له إصدار وموثق. يمكن أن تكون الـ orbs عامة (متاحة للجميع) أو خاصة (لمؤسستك فقط).

استخدام الـ orbs يقلل التكوين بمقدار 5–10 مرات. على سبيل المثال، يوفر orb circleci/android executor android/default مع SDK مثبت مسبقًا وأوامر restore-gradle-cache و save-gradle-cache. يتضمن orb circleci/ios executor مع Xcode وأوامر لـ code signing عبر fastlane. يمكن دمج الـ orbs بسهولة: أضف orb android للبناء و orb slack للإشعارات.

يقدم CircleCI أيضًا دعمًا مدمجًا لتقارير الاختبارات. Store_test_results يحلل ويعرض نتائج الاختبارات من JUnit و XCTest وغيرها من التنسيقات تلقائيًا. بالنسبة للمشاريع المحمولة، هذا يعني عرضًا مركزيًا للاختبارات الفاشلة واتجاهات وقت التشغيل وتاريخ استقرار البناء، مما يبسط صيانة جودة الكود.

مثال مع orb iOS

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 مهام متوازية و 14,000 دقيقة. Scale Plan — أسعار مخصصة مع توازٍ غير محدود.

ما هي الـ orbs في CircleCI؟

الـ Orbs هي حزم تكوين YAML قابلة لإعادة الاستخدام يتم توزيعها عبر السجل الرسمي. تحتوي على jobs و commands و executors جاهزة للأدوات والمنصات الشائعة.

هل يدعم CircleCI بناء iOS؟

نعم، يدعم CircleCI executor macOS مع Xcode مثبت مسبقًا (الإصدارات 14 و 15 و 16). صور iOS 17 و 18 و watchOS و tvOS متاحة. يتم تكوين code signing عبر fastlane match أو يدويًا.

كيف يعمل التنفيذ المتوازي للاختبارات في CircleCI؟

حدد parallelism: N في المهمة — سيقوم CircleCI بتقسيم الاختبارات عبر N حاوية. أمر circleci tests split يوزع الاختبارات بالتساوي. يتم تنفيذ الاختبارات بالتوازي، مما يقلل الوقت الإجمالي بشكل متناسب مع عدد الحاويات.

ما الفرق بين CircleCI و GitHub Actions؟

يقدم CircleCI منفذات أكثر مرونة (Docker و macOS و Machine و Windows)، ونظام orbs متقدم، وتقسيم اختبارات متوازي مدمج، وقطع أثرية مفصلة للبناء. GitHub Actions يتفوق في التكامل مع GitHub والبساطة.

الخلاصة

  • CircleCI — منصة CI/CD سحابية مع منفذات Docker و macOS و Windows للمشاريع المحمولة
  • Orbs — حزم تكوين YAML جاهزة تقلل إعداد خطوط الأنابيب بمقدار 5–10 مرات
  • Executor يحدد بيئة التنفيذ — Docker لنظام Android، VM macOS لنظام iOS، Machine لـ Docker-in-Docker
  • Parallelism يقسم الاختبارات عبر حاويات متعددة، مما يقلل وقت التشغيل بشكل متناسب
  • Caching عبر restore_cache و save_cache يسرع البناء بمقدار 3–5 مرات مع تكوين المفتاح المناسب
  • Contexts — تخزين آمن للأسرار على مستوى المؤسسة مع وصول عبر المشاريع
  • Orb iOS و Orb Android يوفران مهامًا جاهزة لبناء واختبار ونشر التطبيقات المحمولة

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا