Workflows Reutilizáveis
A organização middag-io mantém workflows reutilizáveis em um repositório central. Cada repositório consumidor chama esses workflows com uses:, herdando lógica de CI, release, documentação, deploy e operações sem duplicação.
Moodle é a família principal de projetos da MIDDAG. WordPress segue suportado, mas foi principalmente a primeira validação operacional.
Visão geral
| Workflow | Família | Finalidade | Versão |
|---|---|---|---|
| Moodle Plugin CI | Moodle | Validação PHP/Composer para plugins Moodle | @workflows-v1 |
| Moodle Plugin Dist | Moodle | Build de ZIP distribuível para plugin Moodle | @workflows-v1 |
| Moodle Plugin Release | Moodle | Release Moodle com ZIP e Private Satis | @workflows-v1 |
| WordPress Plugin CI | WordPress | Lint, análise estática e testes para plugins WP | @workflows-v1 |
| WordPress Theme CI | WordPress | Lint e análise estática para temas WP | @workflows-v1 |
| WP Plugin Post-Release | WordPress | Build do ZIP de distribuição e upload ao GitHub Release | @workflows-v1 |
| Composer Package CI | PHP/Composer | CI para bibliotecas PHP/Composer | @workflows-v1 |
| Cloudflare App CI | Apps | CI para apps Next/Vite/OpenNext | @workflows-v1 |
| Cloudflare App Deploy | Apps | Deploy de apps via Wrangler | @workflows-v1 |
| Docs Deploy | Docs | Build e deploy de sites VitePress no Cloudflare Pages | @workflows-v1 |
| MkDocs Build | Docs | Build estrito de docs MkDocs | @workflows-v1 |
| MkDocs Deploy | Docs | Deploy MkDocs no Cloudflare Pages | @workflows-v1 |
| Release Please | Release | Versionamento automático via conventional commits | @workflows-v1 |
| Sync Develop | Release | Merge main → develop após release | @workflows-v1 |
| Docker WP Operations | Operações | Backup, cache flush e WP-CLI em servidores EC2 | @workflows-v1 |
Como funciona
Todos os workflows são do tipo reusable workflow (on: workflow_call). O repositório consumidor cria um workflow local que referencia o workflow centralizado:
yaml
# .github/workflows/ci.yml (no repositório do plugin)
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
ci:
uses: middag-io/.github-private/.github/workflows/moodle-plugin-ci.yml@workflows-v1
with:
run-check-style: true
run-check-stan: trueVantagens
- Padronização — todos os repositórios seguem o mesmo pipeline de CI.
- Manutenção centralizada — correções e melhorias se propagam automaticamente.
- Flexibilidade — inputs booleanos e strings permitem habilitar/desabilitar etapas por repositório.
- Controle de secrets — workflows devem declarar secrets mínimos sempre que possível.
- Versionamento — consumidores estáveis devem usar tags/canais de workflow, não
@main.