CI/CD — Visión general
Este apartado resume un flujo genérico de CI/CD aplicable a GitHub Actions, GitLab CI, TeamCity y Azure Pipelines. La idea es que cada plataforma ejecute los mismos pasos con su sintaxis específica.
Objetivos
- CI (Integración continua): compilar, testear, analizar y generar artefactos en cada cambio.
- CD (Despliegue continuo): versionar, publicar y desplegar de forma repetible y trazable.
Pasos mínimos del pipeline
- Trigger: al hacer
push,pull_requestomerge. - Checkout del repo.
- Preparar entorno:
- En nuestro caso SDK .NET 9.
- Restore de dependencias:
dotnet restore
- Compilar Solución:
dotnet build ProjectName.sln -c Release
- Publicar Frontend:
dotnet publish ProjectName.Frontend.csproj -c Release --no-build
- Publicar Backend:
dotnet publish ProjectName.Backend.csproj -c Release --no-build
- Compilar BD Configuración:
dotnet build ProjectName.Conf.Database.sqlproj -c Release --no-build
- Compilar BD Datos (opcional):
dotnet build ProjectName.Data.Database.sqlproj -c Release --no-build
- Tests unitarios:
dotnet test ProjectName.UnitTest.csproj -c Release --no-build
- Tests de interfaz:
dotnet test ProjectName.InterfaceTest.csproj -c Release --no-build
- Generación de NuGets:
- Con Nuspec (Por defecto):
nuget pack ProjectName.Frontend.nuspec -Properties Configuration=Releasenuget pack ProjectName.Backend.nuspec -Properties Configuration=Releasenuget pack ProjectName.Conf.Database.nuspec -Properties Configuration=Releasenuget pack ProjectName.Data.Database.nuspec -Properties Configuration=Release
- Con dotnet:
dotnet pack ProjectName.Frontend.csproj -c Release --no-builddotnet pack ProjectName.Backend.csproj -c Release --no-builddotnet pack ProjectName.Conf.Database.sqlproj -c Release --no-builddotnet pack ProjectName.Data.Database.sqlproj -c Release --no-build
- Con Nuspec (Por defecto):
- Generación de imágenes docker:
docker build -t Repositorio/Nombre:Version -f Dockerfile PublicacionProjectName