CI/CD y Chequeos Locales¶
Esta guía resume qué valida la CI y cómo replicarlo localmente antes de commitear.
Workflows¶
/.github/workflows/lint.yml- PHP Pint (
vendor/bin/pint -n --test) - Prettier (
npm run format:check) - ESLint (
npm run lint:ci) - TypeScript (
npm run typecheck) - PHPStan (
composer run analyse)
- PHP Pint (
/.github/workflows/tests.yml- Instala dependencias Node y compila assets (
npm ci && npm run build). - Instala dependencias PHP (
composer install). - Migra BD Postgres (puerto 5432 en CI).
- Ejecuta tests
./vendor/bin/pest.
- Instala dependencias Node y compila assets (
Cómo testear localmente antes del commit¶
-
Instalar dependencias
composer install npm ci -
Formateo y linters
# PHP style (no modifica archivos, solo verifica) vendor/bin/pint -n --test # Frontend npm run format:check # Prettier npm run lint:ci # ESLint npm run typecheck # TypeScript -
Análisis estático PHP
composer run analyse # PHPStan -
Tests
- Asegúrate de que Postgres de pruebas esté accesible según
.env.testing.- Host:
127.0.0.1 - Puerto:
5434(local, ver nota abajo) - DB:
boilerplate_laravel12_testcp .env.testing .env # Para lanzar server local si hace falta php artisan key:generate php artisan migrate --env=testing vendor/bin/pest
- Host:
- Asegúrate de que Postgres de pruebas esté accesible según
Documentación (MkDocs) — desarrollo local¶
- Crear y activar venv de Python (opcional pero recomendado):
python -m venv .venv && source .venv/bin/activate
- Instalar dependencias de documentación (versionadas):
pip install -r docs/requirements.txt
- Servir o compilar documentación:
mkdocs serve -a 127.0.0.1:8002 # hot reload
mkdocs build --strict # build estricto
Alternativamente (si mkdocs está en PATH):
npm run docs:serve
npm run docs:build
Notas:
- Puedes crear
mkdocs.local.ymlpara overrides locales (p. ej.,site_urly/o desactivarredirectsen local). Ya está en.gitignore. - No commitees
site/(salida de build) ni el venv.venv/.
Notas de entorno¶
- DB de pruebas: seguimos usando
.env.testingcomo fuente única de configuración. En local el puerto es5434. En CI (GitHub Actions) el servicio expone5432. - Locales: por defecto
APP_LOCALE=es,APP_FALLBACK_LOCALE=es,APP_FAKER_LOCALE=es_ES. - Pre-commit: Husky ejecuta
lint-stagedpara formatear/lintar archivos tocados; Pint se ejecuta sobre archivos PHP staged.
Errores comunes¶
- Pint:
unary_operator_spaces→ elimina el espacio después de!, por ejemplo:!array_key_exists(...). - ESLint/TS: si fallan imports de alias, revisa
tsconfig.jsonyvite.config.js.