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-এ কমিয়েছি।