Workflows CI/CD

.github/workflows/README.md

GitHub Actions Workflows - Nidus

Documentación de los workflows activos en .github/workflows.


Índice

  1. CI - Nidus Platform
  2. Auto Create PR
  3. Promote Dev to Test
  4. Release Test to Main
  5. Protect Permanent Branches

1. CI - Nidus Platform

Archivo: .github/workflows/ci.yml

Valida lint y build en pushes y pull requests.

Cuándo se ejecuta

EventoCondición
pushEn main, dev y test
pull_requestopened, synchronize, reopened, ready_for_review

Comportamiento

  • Cancela ejecuciones anteriores si entra un nuevo push en la misma rama.
  • No corre en PRs draft.
  • Instala pnpm 10.27.0 y Node.js 20.
  • Ejecuta pnpm install --frozen-lockfile, pnpm lint y pnpm build.

2. Auto Create PR

Archivo: .github/workflows/auto-pr.yml

Crea automáticamente un PR cuando se hace push a una rama que no sea main, dev o test.

Cuándo se ejecuta

EventoCondición
pushExcluye main, dev y test

Comportamiento

  • Toma la rama actual como head.
  • Determina la rama destino desde el commit o usa dev como fallback.
  • Formatea el título del PR a partir del nombre de la rama.
  • Si ya existe un PR abierto para esa rama, no crea uno nuevo.
  • Crea el PR en modo draft y asigna al autor del push.

3. Promote Dev to Test

Archivo: .github/workflows/promote-to-test.yml

Cuando se mergea un PR en dev, crea automáticamente un PR de dev hacia test.

Cuándo se ejecuta

EventoCondición
pull_requestclosed sobre la rama dev

Comportamiento

  • Solo actúa si el PR fue mergeado.
  • Verifica que test exista y que haya cambios nuevos entre dev y test.
  • Evita duplicar PRs abiertos entre dev y test.
  • Crea un PR draft con título [RELEASE] TEST.

4. Release Test to Main

Archivo: .github/workflows/release-to-main.yml

Cuando se mergea un PR en test, versiona el monorepo y crea un PR de test hacia main.

Cuándo se ejecuta

EventoCondición
pull_requestclosed sobre la rama test

Comportamiento

  • Solo actúa si el PR fue mergeado.
  • Detecta el tipo de bump SemVer desde el título del PR: major, minor o patch.
  • Ejecuta npm version en workspaces y en el root del monorepo.
  • Sincroniza el commit de versión de test hacia dev.
  • Evita duplicar PRs abiertos entre test y main.
  • Crea un PR draft con título [RELEASE] MAIN.

5. Protect Permanent Branches

Archivo: .github/workflows/protect-branches.yml

Restaura automáticamente main, dev o test si alguna de esas ramas se elimina.

Cuándo se ejecuta

EventoCondición
deleteSolo para main, dev y test

Comportamiento

  • Busca el último SHA conocido de un PushEvent en el historial del repositorio.
  • Recrea la rama eliminada apuntando a ese SHA.
  • Si no encuentra un SHA válido, falla y no restaura la rama.

Relación entre workflows

text
push a rama feature
  -> auto-pr.yml

merge en dev
  -> promote-to-test.yml

merge en test
  -> release-to-main.yml

push o PR en main/dev/test
  -> ci.yml