CI Pipeline

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

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

المهمةالغرضمتى يعمل
docs-scopeكشف تغييرات الوثائق فقطدائمًا
changed-scopeكشف المناطق التي تغيرت (node/macos/android)طلبات السحب غير الوثائق
checkأنواع TypeScript، lint، تنسيقتغييرات غير الوثائق
check-docsMarkdown lint + فحص الروابط المكسورةالوثائق تغيرت
code-analysisفحص عتبة LOC (1000 سطر)طلبات السحب فقط
secretsكشف الأسرار المسربةدائمًا
build-artifactsبناء dist مرة واحدة، مشاركة مع المهام الأخرىغير الوثائق، تغييرات node
release-checkالتحقق من محتويات npm packبعد البناء
checksاختبارات Node/Bun + فحص البروتوكولغير الوثائق، تغييرات node
checks-windowsاختبارات خاصة بـ Windowsغير الوثائق، تغييرات node
macosSwift lint/build/test + اختبارات TSطلبات السحب مع تغييرات macos
androidبناء Gradle + اختباراتغير الوثائق، تغييرات android

ترتيب الفشل السريع

يتم ترتيب المهام بحيث تفشل الفحوصات الرخيصة قبل تشغيل الفحوصات المكلفة:

  1. docs-scope + code-analysis + check (متوازي، ~1-2 دقيقة)
  2. build-artifacts (محظور على ما سبق)
  3. checks, checks-windows, macos, android (محظور على البناء)

المشغلون

المشغلالمهام
blacksmith-16vcpu-ubuntu-2404معظم مهام Linux، بما في ذلك كشف النطاق
blacksmith-16vcpu-windows-2025checks-windows
macos-latestmacos, ios

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

bash
pnpm check          # types + lint + format
pnpm test           # vitest tests
pnpm check:docs     # docs format + lint + broken links
pnpm release:check  # validate npm pack