HeadlinesBriefing favicon HeadlinesBriefing.com

Pengodean AI Membuat CI Menjadi Hambatan: Solusi Linear

Hacker News •
×

Awal tahun ini, Tuomas, CTO kami, menugaskan saya sebuah masalah: “Biaya CI tinggi.” Dia juga ingin CI lebih cepat. Agen mempercepat pengiriman, tetapi validasi perubahan tidak mengikuti laju tersebut. Setiap PR harus melewati CI, jadi saat pengembangan berakselerasi, CI menjadi hambatan, menaikkan biaya infrastruktur dan membuat pengembang menunggu lebih lama untuk umpan balik. Di Linear, kami mengoptimalkan waktu tunggu PR dan waktu runner. Meskipun rangkaian tes hampir empat kali lipat, kami memangkas waktu tunggu PR dari lebih dari 6 menit menjadi sedikit di atas 5, dan memangkas separuh waktu runner per tes.

Kami meningkatkan CI dengan empat cara: meningkatkan infrastruktur dan perkakas, mengoptimalkan pekerjaan yang menggerbangi pekerjaan lain, mengurangi penyiapan berulang, dan membuat eksekusi tes lebih efisien. Basis kode Linear sebagian besar adalah TypeScript, tetapi banyak optimasi berlaku lintas bahasa.

Memindahkan beban kerja dari GitHub Actions ke runner pihak ketiga dengan CPU dan penyimpanan yang lebih cepat memangkas waktu pekerjaan rata-rata 34%, dengan tsc turun 52%. Beralih ke tsgo memangkas median mingguan pemeriksaan tsc sebesar 73%. Menulis ulang aturan lint untuk menggunakan analisis statis membuat ESLint meninggalkan TypeScript, mengurangi waktu lint API sebesar 68% dan lint seluruh repo sebesar 55%. Beralih ke Oxlint semakin memangkas menit runner. Kami juga mengoptimalkan pekerjaan gating, membatasi kedalaman fetch untuk mengurangi gerbang paling lambat dari 94 detik menjadi 20.