7.6 KiB
7.6 KiB
| read_when | summary | title | x-i18n | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
رسم وظائف CI البياني، وبوابات النطاق، والمكافئات المحلية للأوامر | مسار CI |
|
مسار 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 |
ترتيب الإخفاق السريع
تُرتب الوظائف بحيث تفشل الفحوصات الرخيصة قبل تشغيل الوظائف المكلفة:
- يقرر
preflightأي المسارات موجودة أصلًا. ومنطقdocs-scopeوchanged-scopeهما خطوتان داخل هذه الوظيفة، وليسا وظيفتين مستقلتين. - تفشل
security-fastوcheckوcheck-additionalوcheck-docsوskills-pythonبسرعة من دون انتظار وظائف artifact ومصفوفات المنصات الأثقل. - يتداخل
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.
ويعيد workflow المنفصل install-smoke استخدام نص النطاق نفسه عبر وظيفة preflight الخاصة به. فهو يحسب run_install_smoke من إشارة changed-smoke الأضيق، لذلك لا يعمل smoke الخاص بـ Docker/install إلا للتغييرات المرتبطة بالتثبيت والتعبئة والحاويات.
في عمليات الدفع، تضيف مصفوفة checks مسار compat-node22 الخاص بالدفع فقط. أما في pull requests، فيُتخطى هذا المسار وتظل المصفوفة مركزة على مسارات الاختبار/القنوات العادية.
المشغّلات
| المشغّل | الوظائف |
|---|---|
blacksmith-16vcpu-ubuntu-2404 |
preflight وsecurity-fast وbuild-artifacts وفحوصات Linux وفحوصات الوثائق وPython Skills وandroid |
blacksmith-32vcpu-windows-2025 |
checks-windows |
macos-latest |
macos-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 مهمة