Repositorio de ejemplo React + Vite pensado para mostrar un flujo completo de CI/CD con GitHub Actions, incluyendo lint, tests unitarios (Jest) y tests end-to-end (Cypress), con build estático listo para despliegue.
Repo: https://github.com/atxpaul/react-app-pipeline-example
Este repo sirve como ejemplo práctico para:
- Construir una app frontend moderna con React
- Validar calidad con linting y tests
- Ejecutar tests end-to-end en pipeline
- Generar un artefacto estático (
dist/) - Integrarlo todo en un flujo de GitHub Actions
Está pensado para demos, formaciones y ejemplos de pipelines.
- React + Vite
- ESLint
- Unit tests con Jest
- End-to-End tests con Cypress
- CI/CD con GitHub Actions
- Build estático
- Configuración opcional para Azure Static Web Apps
- Node.js 18+ (recomendado)
- npm
.github/→ workflows de GitHub Actionssrc/→ código fuentepublic/→ assets estáticostests/→ unit tests (Jest)cypress/→ e2e tests (Cypress)dist/→ salida del build (generada)mocks/→ mocks/fixtures (si aplica)staticwebapp.config.json→ reglas de routing/rewrites (si aplica)
npm ci
npm run dev
La app suele quedar en:
http://localhost:5173
Los nombres exactos dependen del
package.json. Esto es orientativo.
-
Dev server:
npm run dev -
Build de producción:
npm run build -
Preview del build:
npm run preview
-
Ejecutar ESLint:
npm run lint
-
Ejecutar tests:
npm testo
npm run test
-
Abrir Cypress (UI):
npm run cy:open -
Ejecutar Cypress (headless):
npm run cy:run
- Ubicación típica:
tests/ - Config habitual:
jest.config.mjs
- Specs:
cypress/e2e/ - Config habitual:
cypress.config.js
Los workflows en .github/workflows/ suelen seguir este flujo:
- Checkout del repo
- Setup de Node
- Instalación de dependencias (
npm ci) - Lint
- Unit tests
- Build (
npm run build) - E2E (Cypress)
- (Opcional) Deploy
Estrategia típica (si aplica a tu repo):
- Pull Requests → validación (lint + unit + e2e)
- Rama
main→ despliegue astaging - Ramas
release/*→ despliegue aproduction
Si el proyecto usa variables de entorno:
- En local:
.env - En CI/CD: GitHub Secrets / Variables o GitHub Environments
En Vite, las variables expuestas al frontend suelen empezar por VITE_.
Ejemplo:
VITE_API_URL=https://example.com
Configuración típica:
- Build command:
npm run build - Output folder:
dist
Si es una SPA, revisa staticwebapp.config.json para rutas/rewrites.
-
Construir:
npm run build -
Publicar el contenido de
dist/(Netlify, GitHub Pages, S3, etc.)
- Fork
- Rama (
feat/*ofix/*) - Verificar lint + tests
- PR a
main
Pendiente de definir (añade un LICENSE si quieres publicarlo como OSS).