docs: add troubleshooting section and update workflow runner label

This commit is contained in:
Tiago Yamamoto 2025-12-27 23:11:08 -03:00
parent c651cbda1d
commit 7783c9a0dc
2 changed files with 24 additions and 7 deletions

View file

@ -9,7 +9,7 @@ on:
jobs:
deploy-backend-dev:
runs-on: ubuntu-latest
runs-on: docker
steps:
- name: Executar Deploy via SSH na Apolo (Ambiente Dev)
uses: appleboy/ssh-action@v1.0.3

View file

@ -78,7 +78,7 @@ Este workflow é disparado automaticamente ao realizar um push para o branch `de
**Etapas do CI/CD:**
1. **Trigger:** Push no branch `dev` (apenas alterações em `backend/**`).
2. **Runner:** Executa no ambiente `ubuntu-latest`.
2. **Runner:** Executa no ambiente `docker` (ou `ubuntu-latest` dependendo do runner).
3. **SSH Action:** Conecta no servidor de desenvolvimento (Apolo) via SSH.
4. **Atualização de Código:**
* Navega até `/mnt/data/gohorsejobs` (ou caminho configurado).
@ -201,11 +201,6 @@ go run ./cmd/manual_migrate
go run ./cmd/api
```
### Executar com Docker
```bash
docker compose up -d
```
### Executar com Podman
```bash
# Build
@ -223,3 +218,25 @@ go test ./...
# Com cobertura
go test -cover ./...
```
---
## ❓ Troubleshooting (CI/CD & Runner)
### O Workflow não inicia (`Waiting for runner...`)
* **Causa:** Nenhuma maquina registrada com o label correto.
* **Solução:**
1. Verifique, no arquivo `.forgejo/workflows/deploy.yaml`, o campo `runs-on`.
2. Se estiver como `docker`, seu `act_runner` deve ter suporte a este label (ex: `labels: "docker:docker://node:16-bullseye,ubuntu-latest:docker://node:16-bullseye"` no `config.yaml`).
3. Se o runner for genérico, use `ubuntu-latest`.
### Falha de SSH (`ssh: handshake failed`)
* **Solução:**
1. Verifique se a chave pública (`id_rsa.pub`) correspondente à `SSH_KEY` do secret está no arquivo `~/.ssh/authorized_keys` da máquina de destino.
2. Confira se o IP (`HOST`) está acessível da rede onde o runner está.
### Falha de Build no Podman
* **Causa:** Falta de permissão ou serviço parado.
* **Solução:**
1. Rode `podman logs -f <conteiner>` na máquina de destino.
2. Verifique se o usuário tem permissão de usar podman (rootless ou sudo).