# Forgejo Actions — CI/CD do Shivao

## Como ativar (uma vez)

### 1. Configure um runner Forgejo no Coolify

```bash
# Sub-domínio sugerido: actions.pontualtech.work (DNS A → Hetzner)
# Sobe via Coolify usando docker-compose:
```

```yaml
# Cole no Coolify → Pontualtech → New Resource → Docker Compose Empty
services:
  forgejo-runner:
    image: code.forgejo.org/forgejo/runner:6
    restart: unless-stopped
    environment:
      FORGEJO_INSTANCE_URL: https://git.pontualtech.work
      FORGEJO_RUNNER_REGISTRATION_TOKEN: ${RUNNER_TOKEN}  # pega em git.pontualtech.work/admin/runners
    volumes:
      - runner_data:/data
      - /var/run/docker.sock:/var/run/docker.sock
volumes:
  runner_data:
```

### 2. Configure secrets no Forgejo

`git.pontualtech.work/karlao/shivao-projeto/settings/actions/secrets`

| Secret | Como obter |
|---|---|
| `SHIVAO_KEYSTORE_BASE64` | `base64 -w0 ~/Downloads/Shivao-keystore-backup/shivao-release-CAPACITOR.keystore` |
| `SHIVAO_KEYSTORE_PWD` | `ShivaoKeystore2026!` (a senha que você definiu) |
| `FORGEJO_TOKEN` | Settings → Applications → Generate New Token (permissions: write:repository) |

### 3. Triggers do workflow

- **Auto:** push em `master` que toque em `app/`, `mobile/` ou `scripts/sync-html.mjs`
- **Manual:** botão "Run workflow" no painel Forgejo Actions

## Output

Cada build gera:
- APK assinado: `Shivao-v{X.Y.Z}.apk`
- AAB assinado: `Shivao-v{X.Y.Z}.aab`
- Anexados como artifact (download via UI Forgejo)
- Se trigger for manual: cria release `v{X.Y.Z}-ci` no repo

## Vantagens vs build local

- ✅ Zero setup local — Karlão pode editar HTML do iPad e o build roda no servidor
- ✅ Imutável e reproduzível
- ✅ Self-hosted (alinhado com `feedback_self_hosted.md`)
- ✅ Logs centralizados
- ⚠️ Custo: 1 container Coolify rodando (low-resource, ~50MB RAM idle)

## Alternativas se runner não funcionar

- **Codemagic:** 500min grátis/mês, conecta ao Forgejo via webhook
- **GitHub Actions (free tier):** mirror do repo no GitHub → workflow padrão
- **Build local:** `cd mobile && npm run android:build:aab` (já documentado em mobile/README.md)
