Ajustes de CI/CD.
This commit is contained in:
76
.gitea/workflows/deploy.yml
Normal file
76
.gitea/workflows/deploy.yml
Normal file
@@ -0,0 +1,76 @@
|
||||
name: Build y Deploy a Producción
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main # O la rama que uses para producción
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Construir y Subir Imágenes Docker
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout del código
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login al Registro de Gitea
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ secrets.REGISTRY_URL }}
|
||||
# Usamos el token de acceso personal para el login
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Construir y Subir API Backend
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
file: ./Backend/GestionIntegral.Api/Dockerfile
|
||||
push: true
|
||||
tags: |
|
||||
${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}/api:latest
|
||||
${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}/api:${{ gitea.sha_short }}
|
||||
|
||||
- name: Construir y Subir Frontend
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
# ¡Asegúrate de que esta ruta a tu frontend es correcta!
|
||||
context: .
|
||||
file: ./Frontend/Dockerfile
|
||||
push: true
|
||||
tags: |
|
||||
${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}/frontend:latest
|
||||
${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}/frontend:${{ gitea.sha_short }}
|
||||
|
||||
deploy:
|
||||
name: Desplegar a Producción
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- name: Desplegar con Docker Compose
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: ${{ secrets.PROD_SERVER_HOST }}
|
||||
username: ${{ secrets.PROD_SERVER_USER }}
|
||||
key: ${{ secrets.PROD_SERVER_SSH_KEY }}
|
||||
script: |
|
||||
cd /opt/gestion-integral
|
||||
|
||||
# Pasamos los secretos como variables de entorno
|
||||
export DB_SA_PASSWORD='${{ secrets.DB_SA_PASSWORD }}'
|
||||
export JWT_KEY='${{ secrets.JWT_SECRET_KEY }}'
|
||||
|
||||
# Login al registro de Gitea DENTRO del servidor de producción
|
||||
# Aquí también usamos el ACTIONS_PAT
|
||||
docker login ${{ secrets.REGISTRY_URL }} -u ${{ gitea.actor }} -p ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
# Descargamos las nuevas versiones de las imágenes
|
||||
docker compose pull
|
||||
|
||||
# Levantamos el stack con los cambios
|
||||
docker compose up -d
|
||||
|
||||
# Limpiamos imágenes viejas que ya no se usan
|
||||
docker image prune -af
|
||||
Reference in New Issue
Block a user