runner pause / runner unpause

runner pause marca uma app como paused: o cron fetch --deploy a ignora completamente até que seja despausada. A app continua rodando em produção — apenas novos deploys são bloqueados. Disponível desde v2.30.10.

runner unpause reverte o estado, reativando a app para deploys automáticos. Disponível desde v2.23.19.

Use quando: você precisa de um emergency stop — impedir que um novo push acidental na branch dist acione um deploy durante manutenção, sem precisar desregistrar a app.

Sintaxe

runner pause [OPTIONS] <APP>
runner unpause [OPTIONS] <APP>

Flags (pause)

Flag Default Descrição
--json Atalho para --output json
-o, --output <FORMAT> human Formato de saída: human, json, yaml
--insecure Bypassa guards de segurança (gera banner e audit log)
-h, --help Exibe ajuda

Flags (unpause)

Flag Default Descrição
--json Atalho para --output json
-o, --output <FORMAT> human Formato de saída: human, json, yaml
--insecure Bypassa guards de segurança (gera banner e audit log)
-h, --help Exibe ajuda

Exemplos

Pausar antes de manutenção

$ runner pause meu-app
App meu-app paused. cron fetch --deploy will skip it until unpaused.

Verificar estado

$ runner status meu-app
status: paused

Reativar após manutenção

$ runner unpause meu-app
App meu-app unpaused.

Output JSON

$ runner pause meu-app --json
{
  "app": "meu-app",
  "previous_status": "active",
  "status": "paused"
}

$ runner unpause meu-app --json
{
  "app": "meu-app",
  "was_paused": true,
  "status": "active"
}

Diferença entre pause manual e auto-pause

O runner também pausa apps automaticamente quando max_consecutive_fetch_errors é atingido (default: 10 falhas consecutivas). Ambos os tipos de pause são resolvidos com runner unpause.

Situação Causa do pause O que fazer antes de unpause
Pause manual runner pause Concluir a manutenção
Auto-pause Erros consecutivos no fetch Corrigir o problema subjacente (repo, token, network)

Despausar sem corrigir o problema em auto-pause fará a app entrar em loop e ser pausada novamente.

Fluxo de manutenção

# 1. Bloquear deploys automáticos
runner pause meu-app

# 2. Realizar manutenção (atualização de config, migração, etc.)
runner secrets set meu-app DB_HOST "novo-host"
runner deploy meu-app   # deploy manual ainda é possível enquanto pausado

# 3. Liberar deploys automáticos
runner unpause meu-app

O runner deploy manual funciona mesmo com a app pausada. O pause afeta apenas o ciclo automático do cron.

Idempotência

runner pause é idempotente: pausar uma app já pausada não gera erro. runner unpause em app não pausada zera consecutive_fetch_errors de forma defensiva, sem erro.

Erros comuns

  • app_not_found — app não registrada neste servidor; verifique com runner list.

Veja também

By Borlot.com.br on 27/05/2026