الانتقال إلى المحتوى الرئيسي

مسار CI

يعمل CI عند كل دفع إلى main وكل pull request. ويستخدم تحديد نطاق ذكيًا لتخطي الوظائف المكلفة عندما تكون التغييرات مقتصرة على مناطق غير مرتبطة.

نظرة عامة على الوظائف

الوظيفةالغرضوقت التشغيل
preflightاكتشاف التغييرات الخاصة بالوثائق فقط، والنطاقات المتغيرة، والإضافات المتغيرة، وبناء CI manifestدائمًا في عمليات الدفع وطلبات السحب غير المسودة
security-fastاكتشاف المفاتيح الخاصة، وتدقيق workflow عبر zizmor، وتدقيق تبعيات الإنتاجدائمًا في عمليات الدفع وطلبات السحب غير المسودة
build-artifactsبناء dist/ وControl UI مرة واحدة، ورفع artifacts قابلة لإعادة الاستخدام للوظائف اللاحقةالتغييرات المرتبطة بـ Node
checks-fast-coreمسارات صحة Linux السريعة مثل فحوصات الحزمة/عقد الإضافات/البروتوكولالتغييرات المرتبطة بـ Node
checks-fast-extensionsتجميع مسارات تقسيم الإضافات بعد اكتمال checks-fast-extensions-shardالتغييرات المرتبطة بـ Node
extension-fastاختبارات مركزة للإضافات المضمّنة التي تغيّرت فقطعند اكتشاف تغييرات في الإضافات
checkالبوابة المحلية الرئيسية في CI: ‏pnpm check بالإضافة إلى pnpm build:strict-smokeالتغييرات المرتبطة بـ Node
check-additionalحمايات البنية والحدود بالإضافة إلى حزمة اختبار تراجع مراقبة gatewayالتغييرات المرتبطة بـ Node
build-smokeاختبارات smoke للـ CLI المبني واختبار smoke لذاكرة بدء التشغيلالتغييرات المرتبطة بـ Node
checksمسارات Linux Node الأثقل: الاختبارات الكاملة، واختبارات القنوات، وتوافق Node 22 للدفع فقطالتغييرات المرتبطة بـ Node
check-docsتنسيق الوثائق وفحصها واختبارات الروابط المعطلةعند تغيير الوثائق
skills-python‏Ruff + pytest للـ Skills المعتمدة على Pythonالتغييرات المرتبطة بـ Python Skills
checks-windowsمسارات اختبارات خاصة بـ Windowsالتغييرات المرتبطة بـ Windows
macos-nodeمسار اختبارات TypeScript على macOS باستخدام artifacts المبنية المشتركةالتغييرات المرتبطة بـ macOS
macos-swiftفحص Swift وبناؤه واختباراته لتطبيق macOSالتغييرات المرتبطة بـ macOS
androidمصفوفة بناء Android واختبارهالتغييرات المرتبطة بـ Android

ترتيب الإخفاق السريع

تُرتب الوظائف بحيث تفشل الفحوصات الرخيصة قبل تشغيل الوظائف المكلفة:
  1. يقرر preflight أي المسارات موجودة أصلًا. ومنطق docs-scope وchanged-scope هما خطوتان داخل هذه الوظيفة، وليسا وظيفتين مستقلتين.
  2. تفشل security-fast وcheck وcheck-additional وcheck-docs وskills-python بسرعة من دون انتظار وظائف artifact ومصفوفات المنصات الأثقل.
  3. يتداخل build-artifacts مع مسارات Linux السريعة حتى يتمكن المستهلكون اللاحقون من البدء بمجرد جاهزية البنية المشتركة.
  4. بعد ذلك تتفرع مسارات المنصات ووقت التشغيل الأثقل: checks-fast-core وchecks-fast-extensions وextension-fast وchecks وchecks-windows وmacos-node وmacos-swift وandroid.
يعيش منطق النطاق في scripts/ci-changed-scope.mjs وتغطيه اختبارات الوحدة في src/scripts/ci-changed-scope.test.ts. ويعيد workflow المنفصل install-smoke استخدام نص النطاق نفسه عبر وظيفة preflight الخاصة به. فهو يحسب run_install_smoke من إشارة changed-smoke الأضيق، لذلك لا يعمل smoke الخاص بـ Docker/install إلا للتغييرات المرتبطة بالتثبيت والتعبئة والحاويات. في عمليات الدفع، تضيف مصفوفة checks مسار compat-node22 الخاص بالدفع فقط. أما في pull requests، فيُتخطى هذا المسار وتظل المصفوفة مركزة على مسارات الاختبار/القنوات العادية.

المشغّلات

المشغّلالوظائف
blacksmith-16vcpu-ubuntu-2404preflight وsecurity-fast وbuild-artifacts وفحوصات Linux وفحوصات الوثائق وPython Skills وandroid
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-node وmacos-swift

المكافئات المحلية

pnpm check          # الأنواع + lint + format
pnpm build:strict-smoke
pnpm test:gateway:watch-regression
pnpm test           # اختبارات vitest
pnpm test:channels
pnpm check:docs     # تنسيق الوثائق + lint + الروابط المعطلة
pnpm build          # بناء dist عندما تكون مسارات CI artifact/build-smoke مهمة