runner fetch

Verifica atualizacoes nas apps registradas e opcionalmente executa deploy.

Sintaxe

runner fetch [--deploy] [--json]

Parametros

Parametro Tipo Obrigatorio Descricao
--deploy flag Nao Executa deploy automatico se houver mudancas
--json flag Nao Output em formato JSON

Exemplos

Verificar Atualizacoes

runner fetch

Verificar e Deployar

runner fetch --deploy

Output JSON (para cron)

runner fetch --deploy --json

Processo de Fetch

  1. Lista apps registradas

    • Le estado de cada app
  2. Para cada app:

    • git fetch origin dist
    • Compara HEAD local com origin/dist
  3. Se houver mudancas:

    • Com --deploy: executa deploy
    • Sem --deploy: apenas reporta
  4. Atualiza estado

    • Registra timestamp do fetch
    • Registra versao encontrada

Output JSON

{
  "timestamp": "2026-02-12T10:30:00Z",
  "apps": [
    {
      "name": "meu-app",
      "path": "/apps/usuario_meu-app",
      "has_updates": true,
      "current_version": "v1.0.0",
      "remote_version": "v1.0.1",
      "deployed": true,
      "deploy_status": "success"
    }
  ],
  "total_checked": 3,
  "total_updated": 1
}

Configuracao de Cron

Recomendado executar a cada 5 minutos:

# crontab -e
*/5 * * * * /opt/runner/runner fetch --deploy --json >> /var/log/runner-fetch.json 2>&1

Log de Fetch

O Runner mantem um log em /opt/runner/logs/fetch.json:

{"timestamp":"2026-02-12T10:30:00Z","app":"meu-app","action":"deploy","version":"v1.0.1","status":"success"}
{"timestamp":"2026-02-12T10:35:00Z","app":"outro-app","action":"skip","reason":"no_updates"}

Exit Codes

Codigo Significado
0 Sucesso (com ou sem deploys)
1 Erro ao acessar alguma app

Dicas

Verificar Log de Fetch

tail -50 /var/log/runner-fetch.json | jq .

Fetch Manual de App Especifica

Para forcar update de uma app:

cd /apps/usuario_meu-app
git fetch origin dist
git reset --hard origin/dist
runner deploy --app /apps/usuario_meu-app
By Borlot.com.br on 12/02/2026