Files
PruebaGentle/.gitea/workflows/ci.yml
Workflow config file is invalid. Please check your config file: yaml: line 58: mapping values are not allowed in this context

81 lines
2.1 KiB
YAML

name: CI/CD Pipeline
# Triggers: push to main and pull requests to main
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
# Backend build job
backend-build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET 10
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.x
- name: Restore dependencies
run: dotnet restore Backend/PruebaGentle.slnx
- name: Build backend
run: dotnet build Backend/PruebaGentle.slnx --configuration Release
# Frontend build job
frontend-build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js 22
uses: actions/setup-node@v4
with:
node-version: 22.x
- name: Install dependencies
run: npm ci
working-directory: Frontend
- name: Build frontend
run: npm run build
working-directory: Frontend
- name: Run tests
run: npm run test:run
working-directory: Frontend
# Docker build job
docker-build:
needs:[backend-build, frontend-build]
runs-on: docker
if: github.ref == 'refs/heads/main'
env:
DOCKER_API_VERSION: "1.41"
steps:
- name: Checkout code
uses: actions/checkout@v4
# 1. Iniciamos sesión en el registro de Gitea automáticamente
- name: Login to Gitea Registry
run: echo "${{ gitea.token }}" | docker login repo.eldiaservicios.com -u ${{ github.actor }} --password-stdin
# 2. Compilamos (Compose ya sabe qué nombre ponerles gracias al image:)
- name: Build Docker images
run: docker compose build
# 3. Subimos ambas imágenes (Compose ignora sqlserver porque no tiene bloque build)
- name: Push to registry
run: docker compose push
# 4. Limpiamos
- name: Clean up old images
run: |
docker images --format '{{.Repository}}:{{.Tag}}' | grep 'repo.eldiaservicios.com/dmolinari/pruebagentle' | tail -n +3 | xargs -r docker rmi || true