Linear รื้อ CI ใหม่ หลัง AI coding ทำให้จำนวนเทสต์โตเกือบ 4 เท่า
AI coding has made CI a bottleneck, so we reworked ours to keep up
Mufeez Amjad จาก Linear เขียนเมื่อ 21 กันยายนว่า นับจากต้นปี 2026 test suite ของบริษัทโตขึ้นเกือบสี่เท่า มีเทสต์เพิ่มราว 2,000 รายการต่อสัปดาห์ และส่วนใหญ่ agent เป็นผู้เขียน ถ้าไม่ปรับอะไรเลย suite ขนาดนี้จะใช้เวลาราว 11 นาที แต่หลังปรับแล้ว เวลารอ PR กลับลดจากกว่า 6 นาทีเหลือกว่า 5 นาทีเล็กน้อย
ชั้นแรกคือเครื่องมือ ทีมย้ายไปใช้ runner ของผู้ให้บริการรายอื่นที่ CPU เร็วกว่าและ cache ดีกว่า ทำให้ job เร็วขึ้นเฉลี่ย 34% จากนั้นเปลี่ยนมาใช้ tsgo ซึ่งเป็น TypeScript compiler แบบ native ค่ามัธยฐานรายสัปดาห์ของ tsc check ลดลง 73% ทีมยังเขียน lint rule ใหม่ให้วิเคราะห์ AST แทนการพึ่ง type information แล้วถอด TypeScript ออกจาก ESLint ทั้งหมด ทั้ง repo เร็วขึ้น 55% ก่อนจะย้ายไป Oxlint ต่อ
ชั้นที่สองคือ overhead ก่อนเทสต์เริ่มรัน ทีมจำกัด fetch depth ของ gating job จน gate ที่ช้าที่สุดลดจาก 94 เหลือ 20 วินาที สั่ง pnpm install เฉพาะ package ที่จำเป็น ใช้ schema snapshot แทนการ replay migration ทั้งหมด และเลิก cache node_modules เพราะการ restore ใช้ราว 28 วินาที ขณะที่ filtered install ใช้เพียงราว 7.5 วินาที
การเปลี่ยนแปลงที่ได้ผลมากที่สุดคือ Vitest project ที่ตั้ง isolate: false ให้ไฟล์ที่ปลอดภัยใช้ module registry ร่วมกันภายใน worker ประหยัดได้ราว 17% ต่อเดือน shard ที่ช้าที่สุดลดจาก 300–379 เหลือราว 195 วินาที แต่เพราะวิธีนี้เสี่ยงต่อความถูกต้องที่สุด ทีมจึงบังคับให้แต่ละไฟล์ opt-in ด้วย comment กำหนดให้มี teardown สำหรับ shared state และแก้ agent skills ให้เทสต์ที่ agent เขียนทำตามข้อจำกัดนี้โดย default บทเรียนคือเมื่อ AI เร่งปริมาณโค้ดจน CI กลายเป็นคอขวด ให้ไล่ลด overhead ต่อ job ก่อน แล้วค่อยเพิ่มจำนวน shard