HeadlinesBriefing favicon HeadlinesBriefing.com

AI कोडिंग CI को बाधा बनाती है: Linear का समाधान

Hacker News •
×

इस साल की शुरुआत में, हमारे CTO Tuomas ने मुझे एक समस्या सौंपी: “CI की लागत अधिक है।” वह CI को तेज़ भी चाहते थे। एजेंट शिपिंग को तेज़ करते हैं, लेकिन बदलावों को सत्यापित करना उस गति से नहीं चल पाया है। हर PR को CI से गुज़रना होता है, इसलिए जैसे-जैसे विकास तेज़ होता है, CI एक बाधा बन जाता है, जिससे इंफ्रास्ट्रक्चर लागत बढ़ती है और डेवलपर्स को फीडबैक के लिए अधिक इंतज़ार करना पड़ता है। Linear में, हमने PR प्रतीक्षा समय और रनर समय के लिए ऑप्टिमाइज़ किया। टेस्ट सूट लगभग चार गुना होने के बावजूद, हमने PR प्रतीक्षा समय को 6 मिनट से अधिक से घटाकर 5 मिनट से थोड़ा अधिक कर दिया, और प्रति टेस्ट रनर समय आधा कर दिया।

हमने चार तरीकों से CI को बेहतर बनाया: इंफ्रास्ट्रक्चर और टूलिंग को अपग्रेड किया, अन्य काम को गेट करने वाले जॉब्स को ऑप्टिमाइज़ किया, दोहराए गए सेटअप को कम किया, और टेस्ट निष्पादन को अधिक कुशल बनाया। Linear का कोडबेस मुख्य रूप से TypeScript है, लेकिन कई ऑप्टिमाइज़ेशन सभी भाषाओं पर लागू होते हैं।

वर्कलोड को GitHub Actions से तेज़ CPU और स्टोरेज वाले तृतीय-पक्ष रनर्स पर ले जाने से जॉब समय औसतन 34% कम हुआ, जिसमें tsc 52% गिरा। tsgo पर स्विच करने से tsc चेक का साप्ताहिक मेडियन 73% कम हुआ। स्टैटिक विश्लेषण का उपयोग करने के लिए lint नियमों को फिर से लिखने से ESLint ने TypeScript छोड़ दिया, जिससे API lint समय 68% और पूरे रेपो lint 55% कम हुआ। Oxlint पर जाने से रनर-मिनट और कम हुए। हमने गेटिंग जॉब्स को भी ऑप्टिमाइज़ किया, fetch गहराई को सीमित करके सबसे धीमे गेट को 94 सेकंड से घटाकर 20 कर दिया।