CI Pipeline
يعمل CI على كل دفع إلى main وكل طلب سحب. يستخدم نطاقًا ذكيًا لتخطي المهام المكلفة عندما تتغير الوثائق أو الكود الأصلي فقط.
نظرة عامة على المهام
| المهمة | الغرض | متى يعمل |
|---|---|---|
docs-scope | كشف تغييرات الوثائق فقط | دائمًا |
changed-scope | كشف المناطق التي تغيرت (node/macos/android) | طلبات السحب غير الوثائق |
check | أنواع TypeScript، lint، تنسيق | تغييرات غير الوثائق |
check-docs | Markdown lint + فحص الروابط المكسورة | الوثائق تغيرت |
code-analysis | فحص عتبة LOC (1000 سطر) | طلبات السحب فقط |
secrets | كشف الأسرار المسربة | دائمًا |
build-artifacts | بناء dist مرة واحدة، مشاركة مع المهام الأخرى | غير الوثائق، تغييرات node |
release-check | التحقق من محتويات npm pack | بعد البناء |
checks | اختبارات Node/Bun + فحص البروتوكول | غير الوثائق، تغييرات node |
checks-windows | اختبارات خاصة بـ Windows | غير الوثائق، تغييرات node |
macos | Swift lint/build/test + اختبارات TS | طلبات السحب مع تغييرات macos |
android | بناء Gradle + اختبارات | غير الوثائق، تغييرات android |
ترتيب الفشل السريع
يتم ترتيب المهام بحيث تفشل الفحوصات الرخيصة قبل تشغيل الفحوصات المكلفة:
docs-scope+code-analysis+check(متوازي، ~1-2 دقيقة)build-artifacts(محظور على ما سبق)checks,checks-windows,macos,android(محظور على البناء)
المشغلون
| المشغل | المهام |
|---|---|
blacksmith-16vcpu-ubuntu-2404 | معظم مهام Linux، بما في ذلك كشف النطاق |
blacksmith-16vcpu-windows-2025 | checks-windows |
macos-latest | macos, ios |
المكافئات المحلية
bashpnpm check # types + lint + format pnpm test # vitest tests pnpm check:docs # docs format + lint + broken links pnpm release:check # validate npm pack