O Que É um CI Server?
Um CI server é o sistema que observa seu repositório, dispara pipelines em mudanças e coordena as máquinas que fazem build e testam seu código.
O CI server é o orquestrador da integração contínua. Ele escuta mudanças de código, decide qual trabalho executar, despacha esse trabalho para os runners e coleta os resultados, transformando um conjunto de scripts em um processo automatizado e observável.
O que ele faz
Um CI server detecta eventos, como um push ou pull request, procura a definição de pipeline para o repositório e agenda os jobs resultantes. Ele entrega esses jobs a máquinas de execução (runners), acompanha seu progresso, agrega logs e resultados e reporta o status de volta ao desenvolvedor, muitas vezes como um check no pull request.
Servidor versus runner
Vale separar dois papéis. O CI server é o cérebro que agenda e coordena; o runner é o músculo que de fato executa o build e os testes. Um servidor tipicamente despacha trabalho para muitos runners para que os jobs possam rodar em paralelo. No GitHub Actions, o serviço hospedado pelo GitHub é o servidor e os runners fazem o trabalho.
Um exemplo
Um desenvolvedor abre um pull request. O CI server vê o evento, lê o arquivo de workflow e enfileira um job para fazer build e testar a mudança. Ele atribui o job a um runner disponível, transmite os logs de volta e, quando o runner termina, marca o check do PR verde ou vermelho.
Por que é central
O CI server é o ponto único que amarra as mudanças de código à verificação automatizada. Sem ele, builds e testes seriam rodados manualmente, de forma inconsistente. Com ele, cada mudança é verificada da mesma forma, automaticamente, com um resultado visível. Sua confiabilidade e a velocidade de seus runners moldam diretamente quão agradável o CI se sente.
Runners hospedados versus autogerenciados
Muitos serviços de CI oferecem runners hospedados para que você não gerencie máquinas, mas esses podem ser lentos ou caros em escala. Plataformas de runner gerenciado como a Latchkey fornecem runners mais rápidos e confiáveis que se conectam ao mesmo CI server, melhorando a parte do sistema que os desenvolvedores mais sentem.
Principais conclusões
- Um CI server dispara pipelines e coordena o trabalho.
- O servidor agenda; os runners executam o build e os testes de fato.
- Sua confiabilidade e a velocidade dos runners definem a experiência de CI.