Skip to content
Latchkey

O Que É um Concurrency Group no GitHub Actions?

Um concurrency group garante que apenas uma execução por chave esteja ativa por vez, cancelando ou enfileirando as demais.

Pushes rápidos ou deploys repetidos podem empilhar execuções sobrepostas. A chave concurrency agrupa execuções sob um nome compartilhado para que o GitHub mantenha apenas uma em andamento, prevenindo corridas e minutos desperdiçados.

O que é

Um grupo lógico identificado por uma expressão concurrency.group. O GitHub permite apenas uma execução em andamento ou pendente por grupo por vez.

A concurrency group
concurrency:
  group: deploy-${{ github.ref }}
  cancel-in-progress: true

Como funciona

Quando uma nova execução entra em um grupo que já tem uma em andamento, o GitHub enfileira a nova execução ou, se cancel-in-progress: true, cancela a execução mais antiga e inicia a mais nova.

Padrões comuns

  • Cancelar builds de PR obsoletos quando novos commits chegam.
  • Serializar deploys por environment ou branch.
  • Impedir que dois releases entrem em corrida na mesma ref.

Por que importa

O controle de concorrência previne deploys conflitantes e economiza minutos de runner ao cancelar execuções de CI desatualizadas. É um bloco pequeno com benefícios desproporcionais de confiabilidade e custo.

Conceitos relacionados

Concurrency groups usam expressões e contextos para construir sua chave e complementam deployments e environments.

Principais conclusões

  • Um concurrency group mantém uma execução ativa por chave.
  • cancel-in-progress: true encerra a execução mais antiga.
  • Ele previne corridas de deploy e economiza minutos.

Guias relacionados