HeadlinesBriefing favicon HeadlinesBriefing.com

La codificación con IA convierte CI en un cuello de botella: la solución de Linear

Hacker News •
×

A principios de este año, Tuomas, nuestro CTO, me asignó un problema: «Los costos de CI son altos». También quería que CI fuera más rápido. Los agentes aceleran la entrega, pero la validación de cambios no ha seguido el ritmo. Cada PR debe pasar por CI, por lo que a medida que el desarrollo se acelera, CI se convierte en un cuello de botella, lo que aumenta los costos de infraestructura y deja a los desarrolladores esperando más tiempo para recibir comentarios. En Linear, optimizamos para el tiempo de espera de PR y el tiempo del runner. A pesar de que las suites de pruebas casi se cuadruplicaron, redujimos el tiempo de espera de PR de más de 6 minutos a poco más de 5, y redujimos a la mitad el tiempo del runner por prueba.

Mejoramos CI de cuatro maneras: actualizamos la infraestructura y las herramientas, optimizamos los trabajos que controlan otro trabajo, redujimos la configuración repetida y hicimos más eficiente la ejecución de pruebas. El código base de Linear es principalmente TypeScript, pero muchas optimizaciones se aplican a todos los lenguajes.

Mover las cargas de trabajo de GitHub Actions a runners de terceros con CPU y almacenamiento más rápidos redujo los tiempos de trabajo en un 34 % en promedio, con tsc cayendo un 52 %. Cambiar a tsgo redujo la mediana semanal de la verificación de tsc en un 73 %. Reescribir las reglas de lint para usar análisis estático permitió que ESLint abandonara TypeScript, reduciendo el tiempo de lint de API en un 68 % y el lint de todo el repositorio en un 55 %. Mudarse a Oxlint redujo aún más los minutos de runner. También optimizamos los trabajos de control, limitando la profundidad de fetch para reducir el control más lento de 94 segundos a 20.