7.8 KiB
7.8 KiB
| read_when | summary | title | x-i18n | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
مخطط مهام CI، وبوابات النطاق، والمكافئات المحلية للأوامر | مسار CI |
|
مسار CI
يعمل CI عند كل دفع إلى main وكل طلب سحب. ويستخدم تحديد نطاق ذكيًا لتخطي المهام المكلفة عندما تكون التغييرات مقتصرة على أجزاء غير ذات صلة.
نظرة عامة على المهام
| Job | Purpose | When 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-python |
Ruff + pytest للمهارات المعتمدة على Python |
التغييرات ذات الصلة بمهارات Python |
checks-windows |
مسارات اختبارات خاصة بـ Windows | التغييرات ذات الصلة بـ Windows |
macos-node |
مسار اختبارات TypeScript على macOS باستخدام القطع الأثرية المبنية المشتركة | التغييرات ذات الصلة بـ macOS |
macos-swift |
lint وبناء واختبارات Swift لتطبيق macOS | التغييرات ذات الصلة بـ macOS |
android |
مصفوفة بناء Android واختباراته | التغييرات ذات الصلة بـ Android |
ترتيب الإخفاق السريع
تُرتَّب المهام بحيث تُظهر الفحوصات الرخيصة الإخفاقات قبل تشغيل المهام المكلفة:
- يقرر
preflightأي المسارات يجب أن توجد أصلًا. ويكون منطقdocs-scopeوchanged-scopeخطوات داخل هذه المهمة، وليس مهمات مستقلة. - تُظهر
security-fastوcheckوcheck-additionalوcheck-docsوskills-pythonالإخفاقات بسرعة من دون انتظار المهام الأثقل الخاصة بالقطع الأثرية ومصفوفة المنصات. - يعمل
build-artifactsبالتوازي مع مسارات Linux السريعة حتى تتمكن المهام التابعة من البدء فور جاهزية البناء المشترك. - بعد ذلك تتفرع مسارات المنصات وبيئة التشغيل الأثقل:
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 المخصص للدفع فقط. وفي طلبات السحب، يتم تخطي ذلك المسار وتبقى المصفوفة مركزة على مسارات الاختبارات/القنوات العادية.
المشغلات
| Runner | Jobs |
|---|---|
blacksmith-16vcpu-ubuntu-2404 |
preflight وsecurity-fast وbuild-artifacts وفحوصات Linux وفحوصات الوثائق ومهارات Python وandroid |
blacksmith-32vcpu-windows-2025 |
checks-windows |
macos-latest |
macos-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 مهمة