From 8b6540a8ba0ec1a8d1d240937d6fc2216dbbc239 Mon Sep 17 00:00:00 2001 From: Silvio Date: Sun, 14 Jun 2026 10:19:07 -0500 Subject: [PATCH] fix: deploy.yml --- .gitea/workflows/deploy.yml | 41 ++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 131e802..bdff33b 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -3,31 +3,44 @@ name: Despliegue Automático Landing Cirux on: push: branches: - - main + - main # Asegúrate de que tu rama principal sea 'main'. Si es 'master', cámbialo aquí. jobs: deploy: runs-on: self-hosted steps: - # En lugar de checkout@v4, usamos comandos de consola nativos - - name: Descargar código vía Git + - name: Descargar código vía Git Nativo run: | - echo "Clonando/Actualizando código desde Gitea..." - # Limpiamos el directorio de trabajo temporal del runner para evitar conflictos + echo "Limpiando entorno temporal del runner..." rm -rf ./* .git - # Clonamos el repositorio usando el token interno que Gitea genera para cada Job + + echo "Clonando la última versión desde Gitea..." git clone --depth=1 http://token:${{ secrets.GITHUB_TOKEN }}@172.24.0.3:3000/${{ gitea.repository }} . - - name: Sincronizar archivos al directorio de producción + - name: Actualizar archivos en el directorio de producción run: | - echo "Iniciando actualización en /landing-cirux..." - # 1. Limpiamos por completo el destino para evitar archivos fantasmas del pasado - # (Equivale al --delete que hacíamos en rsync) + echo "Sincronizando archivos en /cirux..." + # Limpiamos el destino para evitar archivos obsoletos rm -rf /cirux/* /cirux/.* 2>/dev/null - - # 2. Copiamos todo el contenido actual (incluyendo archivos ocultos como .env o .next) - # Usamos comodines seguros para evitar bucles con '.' y '..' + + # Copiamos todo el contenido nuevo al volumen mapeado cp -r ./.[!.]* ./* /cirux/ 2>/dev/null || cp -r ./* /cirux/ - echo "¡Despliegue completado con éxito!" + - name: Reconstruir y levantar el contenedor Docker + run: | + echo "Reiniciando el contenedor de la aplicación..." + + # Como el runner comparte el socket de Docker (/var/run/docker.sock), + # puede controlar los contenedores del VPS directamente desde aquí. + + # 1. Entramos al directorio dentro del contenedor del runner + cd /cirux + + # 2. Reconstruimos el servicio 'cirux' usando el archivo .env actualizado + docker compose --env-file .env up -d --build cirux + + # 3. Limpieza de imágenes antiguas para optimizar espacio en disco + docker image prune -f + + echo "¡Despliegue y actualización de contenedor completados con éxito!" \ No newline at end of file