WordPress Theme CI
Pipeline de integração contínua reutilizável para temas WordPress. Foca em análise estática e formatação de código PHP — não inclui build de front-end nem testes unitários.
Trigger
yaml
on:
workflow_call:Chamado via uses: a partir do workflow de CI do repositório do tema.
Inputs
| Input | Tipo | Padrão | Descrição |
|---|---|---|---|
php-versions | string | '["8.3", "8.4"]' | Array JSON com versões do PHP para a matrix |
has-phpstan | boolean | true | Executa PHPStan (vendor/bin/phpstan analyse) |
has-cs-fixer | boolean | true | Executa PHP CS Fixer (vendor/bin/php-cs-fixer fix --dry-run --diff) |
has-rector | boolean | false | Executa Rector (vendor/bin/rector process --dry-run) |
php-extensions | string | 'mbstring, xml' | Extensões PHP a instalar |
Secrets
Nenhum secret é necessário. O workflow usa apenas o GITHUB_TOKEN padrão.
Job: php — PHP Matrix
Executa em ubuntu-latest para cada versão da matrix PHP:
- Checkout do código.
- Setup PHP com a versão da matrix e extensões configuradas.
- Instala dependências Composer (
composer install --no-interaction --prefer-dist). - PHP CS Fixer —
vendor/bin/php-cs-fixer fix --dry-run --diff(sehas-cs-fixer). - PHPStan —
vendor/bin/phpstan analyse(sehas-phpstan). - Rector —
vendor/bin/rector process --dry-run(sehas-rector).
Diferenças em relação ao Plugin CI
| Aspecto | Plugin CI | Theme CI |
|---|---|---|
| Build de UI (TypeScript/Vite) | Sim (opcional) | Não |
| Testes unitários | Sim (opcional) | Não |
| Auth GitHub App | Sim (opcional) | Não |
| Comandos de lint | Via composer check:* | Via binários diretos (vendor/bin/*) |
Exemplo de uso
yaml
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
ci:
uses: middag-io/.github-private/.github/workflows/wp-theme-ci.yml@workflows-v1
with:
has-phpstan: true
has-cs-fixer: true
secrets: inheritCom Rector habilitado
yaml
jobs:
ci:
uses: middag-io/.github-private/.github/workflows/wp-theme-ci.yml@workflows-v1
with:
has-rector: true
secrets: inherit