O Que É um Nightly Build? Pipelines Agendados de Fim de Dia
Um nightly build é um pipeline agendado, normalmente executado à noite, que realiza verificações mais pesadas ou lentas do que o pipeline rápido de cada commit.
Nem toda verificação pertence a cada commit. Alguns conjuntos de testes levam uma hora; algumas execuções de integração precisam de um ambiente completo. Nightly builds dão um lar a essas verificações lentas: uma execução agendada, geralmente durante a noite quando ninguém está esperando, que exercita a base de código mais a fundo do que o pipeline rápido por commit.
Por que executar à noite
Feedback rápido em cada commit mantém os desenvolvedores desbloqueados, mas só permite verificações rápidas. Nightly builds capturam o resto: conjuntos de integração completos, testes de longa duração, benchmarks de performance e amplas matrizes de compatibilidade que seriam lentas demais por commit.
O que um nightly build costuma fazer
- Executa o conjunto de testes completo e lento.
- Testa contra muitas versões de OS e de dependências.
- Gera release candidates ou pacotes de preview.
- Executa scans de segurança e de dependências.
Um exemplo rápido
Um trigger agendado como cron: "0 2 * * *" executa o pipeline às 2h diariamente. O workflow noturno pode reutilizar os mesmos jobs do CI, mas com uma matrix maior e uma seleção de testes mais longa habilitada.
Agindo sobre os resultados do nightly
Um nightly build só ajuda se alguém o ler. Direcione as falhas para um canal que o time verifica todas as manhãs, para que uma regressão capturada durante a noite seja corrigida antes de se espalhar. Um nightly vermelho e silencioso é computação desperdiçada.
Nightly builds e custo
Execuções noturnas podem ser grandes, então representam uma parcela real do gasto com CI. Executá-las fora de pico e em runners eficientes ajuda. Runners gerenciados (Latchkey) medem o uso para que você veja exatamente quanto a matrix noturna custa e a dimensione corretamente.
Principais conclusões
- Um nightly build é uma execução agendada, geralmente noturna, de verificações mais pesadas.
- Ele hospeda os conjuntos lentos que seriam custosos demais em cada commit.
- Direcione falhas do nightly para onde as pessoas as leem, ou a execução é desperdiçada.