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

مسار CI

يعمل CI عند كل دفع إلى main وكل طلب سحب. ويستخدم تحديد نطاق ذكيًا لتخطي المهام المكلفة عندما تكون التغييرات مقتصرة على أجزاء غير ذات صلة.

نظرة عامة على المهام

JobPurposeWhen it runs
preflightاكتشاف التغييرات التي تخص الوثائق فقط، والنطاقات المتغيرة، والإضافات المتغيرة، وبناء بيان CIدائمًا في عمليات الدفع وطلبات السحب غير المسودة
security-fastاكتشاف المفاتيح الخاصة، وتدقيق سير العمل عبر zizmor، وتدقيق تبعيات الإنتاجدائمًا في عمليات الدفع وطلبات السحب غير المسودة
build-artifactsبناء dist/ وواجهة Control UI مرة واحدة، ورفع القطع الأثرية القابلة لإعادة الاستخدام للمهام التابعةالتغييرات ذات الصلة بـ 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حواجز البنية والحدود ودورات الاستيراد بالإضافة إلى حزمة انحدار مراقبة البوابةالتغييرات ذات الصلة بـ Node
build-smokeاختبارات smoke لواجهة CLI المبنية واختبار smoke لذاكرة بدء التشغيلالتغييرات ذات الصلة بـ Node
checksمسارات Linux Node الأثقل: اختبارات كاملة، واختبارات القنوات، وتوافق Node 22 المخصص للدفعالتغييرات ذات الصلة بـ Node
check-docsتنسيق الوثائق، وlint، وفحوصات الروابط المعطلةعند تغيير الوثائق
skills-pythonRuff + pytest للمهارات المعتمدة على Pythonالتغييرات ذات الصلة بمهارات Python
checks-windowsمسارات اختبارات خاصة بـ Windowsالتغييرات ذات الصلة بـ Windows
macos-nodeمسار اختبارات TypeScript على macOS باستخدام القطع الأثرية المبنية المشتركةالتغييرات ذات الصلة بـ macOS
macos-swiftlint وبناء واختبارات Swift لتطبيق macOSالتغييرات ذات الصلة بـ macOS
androidمصفوفة بناء Android واختباراتهالتغييرات ذات الصلة بـ Android

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

تُرتَّب المهام بحيث تُظهر الفحوصات الرخيصة الإخفاقات قبل تشغيل المهام المكلفة:
  1. يقرر preflight أي المسارات يجب أن توجد أصلًا. ويكون منطق docs-scope وchanged-scope خطوات داخل هذه المهمة، وليس مهمات مستقلة.
  2. تُظهر security-fast وcheck وcheck-additional وcheck-docs وskills-python الإخفاقات بسرعة من دون انتظار المهام الأثقل الخاصة بالقطع الأثرية ومصفوفة المنصات.
  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. يعيد سير عمل install-smoke المنفصل استخدام نص النطاق نفسه عبر مهمة preflight الخاصة به. وهو يحسب run_install_smoke من إشارة changed-smoke الأضيق، لذلك لا يعمل Docker/install smoke إلا للتغييرات ذات الصلة بالتثبيت والتغليف والحاويات. في عمليات الدفع، تضيف مصفوفة checks مسار compat-node22 المخصص للدفع فقط. وفي طلبات السحب، يتم تخطي ذلك المسار وتبقى المصفوفة مركزة على مسارات الاختبارات/القنوات العادية.

المشغلات

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

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

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