HeadlinesBriefing favicon HeadlinesBriefing.com

A codificação com IA torna o CI um gargalo: a solução da Linear

Hacker News •
×

No início deste ano, Tuomas, nosso CTO, me atribuiu um problema: “Os custos de CI são altos.” Ele também queria o CI mais rápido. Os agentes aceleram a entrega, mas a validação de mudanças não acompanhou o ritmo. Todo PR precisa passar pelo CI, então, à medida que o desenvolvimento acelera, o CI se torna um gargalo, elevando os custos de infraestrutura e deixando os desenvolvedores esperando mais tempo por feedback. Na Linear, otimizamos para o tempo de espera de PR e o tempo do runner. Apesar de as suítes de teste quase quadruplicarem, reduzimos o tempo de espera de PR de mais de 6 minutos para pouco mais de 5, e reduzimos pela metade o tempo do runner por teste.

Melhoramos o CI de quatro maneiras: atualizamos a infraestrutura e as ferramentas, otimizamos trabalhos que controlam outros trabalhos, reduzimos a configuração repetida e tornamos a execução de testes mais eficiente. A base de código da Linear é principalmente TypeScript, mas muitas otimizações se aplicam a todas as linguagens.

Mover cargas de trabalho do GitHub Actions para runners de terceiros com CPUs e armazenamento mais rápidos reduziu os tempos de trabalho em 34% em média, com o tsc caindo 52%. Mudar para o tsgo reduziu a mediana semanal da verificação do tsc em 73%. Reescrever as regras de lint para usar análise estática fez o ESLint abandonar o TypeScript, reduzindo o tempo de lint da API em 68% e o lint de todo o repositório em 55%. Mudar para o Oxlint reduziu ainda mais os minutos de runner. Também otimizamos os trabalhos de controle, limitando a profundidade de fetch para reduzir o controle mais lento de 94 segundos para 20.