O que é um build matrix? Testando em várias versões e plataformas
Uma matrix transforma uma definição de job em muitos jobs paralelos - um por combinação das variáveis que você lista - para você testar em várias versões e plataformas sem copiar e colar jobs.
Um build matrix é uma forma compacta de espalhar um único job por uma grade de configurações. É assim que você prova que seu código funciona em múltiplos SOs, versões de linguagem ou conjuntos de dependências de uma vez.
Como uma matrix funciona
Você declara variáveis com listas de valores; o sistema de CI gera o produto cartesiano - um job por combinação - e os roda em paralelo. Uma matrix 3-OS × 3-versões expande para nove jobs, cada um uma execução isolada dos mesmos steps.
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
node: [18, 20, 22]Por que é útil
- Pegar bugs específicos de versão e plataforma antes dos usuários.
- Paralelizar a cobertura em vez de rodar combinações em série.
- Expressar testes amplos de compatibilidade em poucas linhas de config.
O multiplicador de custo
Uma matrix multiplica os minutos cobráveis pelo número de combinações. Uma matrix ampla de jobs curtos também é punida pelo arredondamento de minuto por job. Corte combinações que agregam pouco sinal (use include/exclude para testar só pares significativos) em vez de testar cegamente a grade inteira.
Matrix e fail-fast
Por padrão, muitos sistemas cancelam o resto da matrix quando um job falha (fail-fast). Isso economiza minutos, mas oculta se a falha é específica de uma combinação. Desabilite o fail-fast quando precisar ver a grade completa de pass/fail em todas as configurações.
Principais conclusões
- Uma matrix expande um job no produto cartesiano de suas variáveis.
- Ela roda combinações em paralelo para cobertura cross-plataforma rápida.
- O custo escala com o número de combinações - pode as de baixo sinal.
- fail-fast cancela os jobs irmãos na primeira falha; desabilite para ver a grade completa.