Skip to content

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

WorkflowFamíliaFinalidadeVersão
Moodle Plugin CIMoodleValidação PHP/Composer para plugins Moodle@workflows-v1
Moodle Plugin DistMoodleBuild de ZIP distribuível para plugin Moodle@workflows-v1
Moodle Plugin ReleaseMoodleRelease Moodle com ZIP e Private Satis@workflows-v1
WordPress Plugin CIWordPressLint, análise estática e testes para plugins WP@workflows-v1
WordPress Theme CIWordPressLint e análise estática para temas WP@workflows-v1
WP Plugin Post-ReleaseWordPressBuild do ZIP de distribuição e upload ao GitHub Release@workflows-v1
Composer Package CIPHP/ComposerCI para bibliotecas PHP/Composer@workflows-v1
Cloudflare App CIAppsCI para apps Next/Vite/OpenNext@workflows-v1
Cloudflare App DeployAppsDeploy de apps via Wrangler@workflows-v1
Docs DeployDocsBuild e deploy de sites VitePress no Cloudflare Pages@workflows-v1
MkDocs BuildDocsBuild estrito de docs MkDocs@workflows-v1
MkDocs DeployDocsDeploy MkDocs no Cloudflare Pages@workflows-v1
Release PleaseReleaseVersionamento automático via conventional commits@workflows-v1
Sync DevelopReleaseMerge main → develop após release@workflows-v1
Docker WP OperationsOperaçõesBackup, 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: true

Vantagens

  • 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.

MIDDAG Tecnologia