O Que É um Minuto de CI? A Unidade Que Determina Sua Conta de CI
Um minuto de CI é um minuto de tempo de relógio (wall-clock) que um runner gasta executando um dos seus jobs. É a unidade que quase todo provedor de CI mede e cobra.
Quando as pessoas falam em "minutos" de CI, elas se referem ao tempo de runner faturável. Cada job que seu pipeline executa consome minutos desde o momento em que o runner inicia seus steps até que eles terminam. Como os pipelines rodam a cada push e pull request, esses minutos se acumulam rapidamente, e é por isso que o minuto de CI é a unidade mais importante de entender se você se importa com sua conta de CI.
O que conta como um minuto
Um minuto de CI é o tempo de relógio no runner enquanto seu job executa - checkout, instalação de dependências, build, testes, deploy. Não é tempo de CPU e não é o tempo dos seus desenvolvedores; é quanto tempo a máquina fica ocupada em seu nome. Se um job leva 7 minutos e 10 segundos, você é cobrado por esse tempo decorrido na máquina que o executou.
Arredondamento e mínimos
A maioria dos provedores arredonda cada job para cima até o próximo minuto inteiro, então um job de 12 segundos ainda custa um minuto completo. Rode uma matrix de fan-out com cinquenta jobs minúsculos e só o arredondamento pode dobrar o compute real que você paga. Menos jobs, ligeiramente maiores, costumam ser mais baratos do que muitos triviais por causa desse imposto de arredondamento.
Como os minutos viram dinheiro
Os runners Linux 2-core hospedados pelo GitHub custam cerca de US$ 0,008 por minuto, então 100.000 minutos por mês são aproximadamente US$ 800 antes de quaisquer multiplicadores de runner maior ou de SO. A tarifa de manchete parece minúscula, mas os minutos são gastos milhares de vezes por dia em uma equipe movimentada, e a conta é simplesmente a tarifa vezes a contagem.
Os minutos não são todos iguais
Um minuto em um runner Windows normalmente custa cerca do dobro de um minuto Linux, e um minuto no macOS aproximadamente dez vezes. O mesmo workflow pode custar valores muito diferentes dependendo de em qual SO e tamanho de runner ele cai, então "minutos usados" sem a tarifa por minuto conta apenas metade da história.
Onde os minutos são desperdiçados
- Cold starts que rebaixam dependências a cada execução em vez de restaurar um cache.
- Testes flaky que forçam uma reexecução completa, cobrando o mesmo trabalho duas vezes.
- Runners superdimensionados reservados "só por garantia" que cobram uma tarifa premium por folga ociosa.
- Tempo de fila em algumas plataformas, onde você espera por um runner livre com o relógio correndo.
Gastando menos minutos
Você corta minutos de duas formas: torne cada job mais rápido (caching, runners no tamanho certo, menos steps redundantes) e pare de pagar por minutos de que não precisava (elimine reexecuções flaky, descarte máquinas superdimensionadas). Uma tarifa por minuto mais barata multiplica o ganho - os runners gerenciados da Latchkey executam os mesmos jobs por cerca de 70% menos do que os hospedados pelo GitHub, e warm pools mais autocorreção reduzem os minutos desperdiçados por cima disso.
Principais conclusões
- Um minuto de CI é um minuto de tempo de relógio faturável do runner por job.
- Os jobs geralmente são arredondados para cima até o minuto inteiro, então muitos jobs minúsculos desperdiçam dinheiro.
- Os minutos custam valores diferentes por SO e tamanho: Windows ~2x, macOS ~10x do Linux.