O Que É uma Label de Runner? Como os Jobs Escolhem Seu Runner
Uma label de runner é uma tag anexada a um runner; um job usa runs-on para pedir runners com labels compatíveis, que é como o CI decide para onde cada job vai.
Labels são a camada de roteamento do CI. Um job diz "preciso de um runner com estas labels" e o serviço o entrega a um runner que combina. Erre as labels e um job pode ficar enfileirado para sempre esperando por um runner que não existe.
Como labels roteiam jobs
Cada runner anuncia labels - built-in como self-hosted, linux, x64, além de quaisquer customizadas que você adicione. O runs-on de um job lista as labels exigidas, e o serviço só atribui o job a um runner que tenha todas elas.
Labels built-in vs customizadas
Labels built-in descrevem o OS e a arquitetura automaticamente. Labels customizadas permitem rotear jobs específicos para capacidade específica - por exemplo uma label gpu para jobs de ML ou uma label de provedor para enviar jobs a uma frota gerenciada.
A clássica falha de incompatibilidade
Se um job pede uma label que nenhum runner online oferece, ele enfileira indefinidamente com "waiting for a runner". Um erro de digitação, um runner desativado ou uma label removida produzem todos o mesmo sintoma de travado na fila.
Labels e migração
Trocar de provedor de runner é muitas vezes só uma mudança de label: aponte o runs-on para a label do novo provedor e o mesmo workflow roda na nova frota. A adoção da Latchkey tipicamente significa trocar a label do runs-on.
Depurando um problema de label
Quando um job fica na fila, liste as labels que seus runners online de fato anunciam e compare-as com o pedido do runs-on. A correção é quase sempre fazer os dois combinarem - corrigir um erro de digitação, colocar um runner online ou restaurar uma label removida.
Principais conclusões
- Uma label de runner marca um runner para que jobs possam pedi-lo via runs-on.
- Um job roda apenas em um runner que tenha todas as suas labels exigidas.
- Pedir uma label que nenhum runner oferece enfileira o job indefinidamente.
- Migrar de provedor de runner é muitas vezes só uma mudança de label no runs-on.