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: pausedReativar 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-appO 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 comrunner list.
Veja também
- `runner status` — verificar o estado atual da app
- `runner deploy` — deploy manual (funciona mesmo com app pausada)
- `runner fetch` — ciclo automático que respeita o estado paused
- `runner reset` — limpa estado completo (alternativa mais destrutiva)