CI/CD
Workflow: .github/workflows/ci-cd-backend.yml
Resumen
| Evento | Job | Qué hace |
|---|---|---|
| Push o PR (cualquier rama) | ci |
make ci en ubuntu-24.04 (restore, lint, build, test) |
Push a main (si ci pasa) |
docker |
Build y push de imagen a GHCR |
El deploy a servidores de producción sigue siendo manual; los secrets para ese paso están documentados en CI/CD y secrets.
Job ci
- Directorio de trabajo:
uni-chat-backend/ - .NET SDK 10.x
- Cache de paquetes NuGet
- Comando:
make ci(equivalente a restore + lint + build + test)
Ejecución local antes de push:
cd uni-chat-backend/uni-chat-backend
make install-hooks # una vez: pre-commit en cada commit
make ci
| Comando | Incluye |
|---|---|
make pre-commit |
lint + build + test |
make ci |
restore + lint + build + test |
Job docker (solo main)
Tras CI exitoso en push a main:
ghcr.io/dar3kdev/uni-chat-backend:latest
ghcr.io/dar3kdev/uni-chat-backend:main
ghcr.io/dar3kdev/uni-chat-backend:<commit-sha>
Contexto de build: carpeta ./uni-chat-backend (Dockerfile del proyecto .NET).
Usar la imagen en un servidor
- Generar
.envde producción (secrets oscripts/render-env.sh). - Definir compose con
image: ghcr.io/dar3kdev/uni-chat-backend:latesty variablesMongo__*,Jwt__*, etc. - Login en registry si el paquete es privado:
echo $GITHUB_TOKEN | docker login ghcr.io -u TU_USUARIO --password-stdin
Ejemplo de compose de producción: sección Producción con imagen Docker en la guía de instalación.
Makefile relacionado
Desde uni-chat-backend/uni-chat-backend/:
| Comando | Uso |
|---|---|
make ci |
Mismo pipeline que GitHub Actions |
make pre-commit |
Hook local |
make install-hooks |
Activa pre-commit en .git/hooks |
make docker-release |
Build y push local de imagen (avanzado) |
Documentación del sitio
Cada push a main también reconstruye GitHub Pages desde la carpeta docs/. Para editar el sitio, ver Contribuir a la documentación.