HeadlinesBriefing favicon HeadlinesBriefing.com

البرمجة بالذكاء الاصطناعي تجعل CI عنق زجاجة: حل Linear

Hacker News •
×

في وقت سابق من هذا العام، كلفني Tuomas، مديرنا التقني، بمشكلة: «تكاليف CI مرتفعة». كما أراد أن يكون CI أسرع. تعمل الوكلاء على تسريع الشحن، لكن التحقق من التغييرات لم يواكب الوتيرة. يجب أن يمر كل PR عبر CI، لذا مع تسارع التطوير، يصبح CI عنق زجاجة، مما يرفع تكاليف البنية التحتية ويترك المطورين ينتظرون وقتًا أطول للحصول على الملاحظات. في Linear، قمنا بالتحسين لوقت انتظار PR ووقت المشغل. على الرغم من أن مجموعات الاختبار تضاعفت أربع مرات تقريبًا، قللنا وقت انتظار PR من أكثر من 6 دقائق إلى ما يزيد قليلاً عن 5، وخفضنا وقت المشغل لكل اختبار إلى النصف.

حسّنا CI بأربع طرق: ترقية البنية التحتية والأدوات، وتحسين المهام التي تتحكم في العمل الآخر، وتقليل الإعداد المتكرر، وجعل تنفيذ الاختبارات أكثر كفاءة. قاعدة كود Linear هي TypeScript بشكل أساسي، لكن العديد من التحسينات تنطبق على جميع اللغات.

نقل أعباء العمل من GitHub Actions إلى مشغلات طرف ثالث بوحدات معالجة مركزية وتخزين أسرع قلل أوقات المهام بنسبة 34% في المتوسط، مع انخفاض tsc بنسبة 52%. أدى التبديل إلى tsgo إلى خفض الوسيط الأسبوعي لفحص tsc بنسبة 73%. إعادة كتابة قواعد lint لاستخدام التحليل الثابت جعلت ESLint تتخلى عن TypeScript، مما قلل وقت lint API بنسبة 68% وlint المستودع بالكامل بنسبة 55%. الانتقال إلى Oxlint قلل دقائق المشغل بشكل أكبر. كما حسّنا المهام البوابية، وحددنا عمق fetch لتقليل أبطأ بوابة من 94 ثانية إلى 20.