Lección 6 de 6 · 3 min
Cypress en CI: rápido, paralelo y con evidencia
El workflow base
# .github/workflows/cypress.yml
name: E2E Cypress
on: [push, pull_request]
jobs:
cypress:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cypress-io/github-action@v6
with:
build: npm run build
start: npm start
wait-on: 'http://localhost:3000'
- uses: actions/upload-artifact@v4
if: failure()
with:
name: evidencia
path: |
cypress/screenshots
cypress/videos
La action oficial resuelve lo tedioso: cachea Cypress, espera a que la app levante (wait-on) y captura screenshots automáticamente en cada fallo.
Paralelizar sin pagar Cypress Cloud
Cypress Cloud paraleliza con balanceo inteligente — y cobra por ello. La alternativa gratis con matrix, repartiendo specs por shard:
strategy:
fail-fast: false
matrix:
containers: [1, 2, 3]
steps:
- uses: cypress-io/github-action@v6
with:
start: npm start
spec: ${{ matrix.containers == 1 && 'cypress/e2e/smoke/**' ||
matrix.containers == 2 && 'cypress/e2e/reservas/**' ||
'cypress/e2e/admin/**' }}
Es reparto manual (menos óptimo que el balanceo del Cloud), pero para la mayoría de las suites el 80% de la ganancia cuesta $0.
retries: la configuración honesta
// cypress.config.js
export default defineConfig({
retries: { runMode: 2, openMode: 0 },
});
Dos reintentos en CI amortiguan el ruido de red real; cero en local para que el flaky se sienta mientras desarrollas. Y la parte no-negociable: un test que necesita retry para pasar entra a cuarentena — el retry es analgésico, no cura.
El tablero mínimo de salud de suite
Sin comprar nada, tres números por semana sacados del reporte de CI:
- Duración total — si sube sostenido, algo se degrada.
- Tests que pasaron en retry — tu lista de flaky en incubación.
- Specs más lentos (top 5) — candidatos a partir o a convertir setup UI → API.
Diez minutos de revisión semanal evitan la muerte lenta clásica: la suite que tarda 40 minutos y todos mergean sin esperarla.
Cierre del curso
Runner, intercepts, sesiones, component testing, a11y, visual y CI: el ciclo Cypress completo. Para ser bilingüe en el mercado e2e, sigue con Playwright pro — los conceptos se traducen en una semana.
Ejercicio final
Monta el workflow completo en un repo con tu suite del curso: 2 shards, retries en runMode, artefactos solo en fallo. Rompe un test a propósito y verifica que el check queda rojo y que el screenshot llegó a los artefactos.