docs/docs/ar/ci.md
2026-04-05 13:01:13 +00:00

7.6 KiB
Raw Blame History

read_when summary title x-i18n
تحتاج إلى فهم سبب تشغيل وظيفة CI أو عدم تشغيلها
أنت تصحح أخطاء فحوصات GitHub Actions الفاشلة
رسم وظائف CI البياني، وبوابات النطاق، والمكافئات المحلية للأوامر مسار CI
generated_at model provider source_hash source_path workflow
2026-04-05T12:37:27Z gpt-5.4 openai 5a95b6e584b4309bc249866ea436b4dfe30e0298ab8916eadbc344edae3d1194 ci.md 15

مسار 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-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 مهمة