Workflows CI/CD
.github/workflows/README.md
GitHub Actions Workflows — Edifiko
Documentación de los workflows de CI/CD activos en el repositorio.
Índice
1. CI — Lint, Type-check, Test & Build
Archivo: .github/workflows/ci.yml
Valida la calidad del código en cada push y pull request. Es el gate obligatorio antes de mergear cualquier rama.
Cuándo se ejecuta
| Evento | Condición |
|---|---|
push | Solo en las ramas main, dev y test |
pull_request | Al abrir, actualizar (synchronize), reabrir o marcar como ready_for_review |
| PR en borrador | No se ejecuta hasta que el PR salga del modo draft |
Concurrencia
Si se hace un nuevo push mientras el workflow está corriendo en la misma rama, el run anterior se cancela automáticamente para ahorrar minutos de CI.
Pasos del job build
| # | Paso | Qué hace |
|---|---|---|
| 1 | Checkout repo | Clona el repositorio con historial completo (fetch-depth: 0) |
| 2 | Install pnpm | Instala pnpm 10.27.0 usando pnpm/action-setup@v3 |
| 3 | Setup Node.js | Configura Node.js 20 con caché de dependencias pnpm |
| 4 | Install dependencies | Ejecuta pnpm install |
| 5 | Lint code | Ejecuta pnpm lint (ESLint con reglas de Next.js + TypeScript + Prettier) |
| 6 | Type-check code | Ejecuta pnpm type-check (tsc --noEmit) |
| 7 | Run tests | Ejecuta pnpm test --run (Vitest en modo no-interactivo) |
| 8 | Build project | Ejecuta pnpm build (Next.js production build) |
Requisitos para que el CI pase
- Sin errores de ESLint.
- Sin errores de TypeScript.
- Todos los tests pasan.
- El build de Next.js compila sin errores.
Secrets / Variables necesarias
Ninguno. Este workflow no requiere secretos externos.
2. AI Pull Request Reviewer
Archivo: .github/workflows/ai-pr-reviewer.yml
Ejecuta una revisión automática del código del PR usando inteligencia artificial (CodeRabbit). Publica un resumen y comentarios de revisión directamente en el PR de GitHub.
Cuándo se ejecuta
| Evento | Condición |
|---|---|
pull_request | Al abrir (opened) o actualizar (synchronize) un PR |
Pasos del job review
| # | Paso | Qué hace |
|---|---|---|
| 1 | Checkout Repo | Clona el repositorio con historial completo |
| 2 | CodeRabbit Summary | Llama a coderabbitai/ai-pr-reviewer@latest con modelo gpt-o4-mini para analizar el diff del PR y publicar comentarios |
Permisos requeridos
| Permiso | Nivel | Motivo |
|---|---|---|
contents | read | Leer el código del repositorio |
pull-requests | write | Publicar comentarios de revisión en el PR |
Secrets necesarios
| Secret | Dónde configurarlo | Descripción |
|---|---|---|
GITHUB_TOKEN | Automático (GitHub Actions) | Autenticación para publicar comentarios en el PR |
OPENAI_API_KEY | Settings → Secrets → Actions | API Key de OpenAI para el modelo GPT-o4-mini |
Para configurar
OPENAI_API_KEY: ve a GitHub → Settings → Secrets and variables → Actions → New repository secret.
name: AI Pull Request Reviewer
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0
# Opción sugerida: Usar CodeRabbit o Coder Hiker
- name: CodeRabbit Summary
uses: coderabbitai/ai-pr-reviewer@latest
with:
model: 'gpt-o4-mini'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
Relación entre workflows
PR abierto / actualizado
│
├── ci.yml ──────────────────► Lint + Type-check + Test + Build
│ (bloquea el merge si falla)
│
└── ai-pr-reviewer.yml ──────► Revisión automática con IA
(publica comentarios en el PR)
El CI es bloqueante (se puede configurar como branch protection rule). El AI Reviewer es informativo: sus comentarios son sugerencias, no bloquean el merge.
