diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 9a2dc1b..53ca7a2 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -3,12 +3,44 @@ name: Despliegue Automático Cirux on: push: branches: - - main - - master + - main # Asegúrate de que tu rama principal sea 'main'. Si es 'master', cámbialo aquí. jobs: - deploy: - runs-on: self-hosted + deploy: + runs-on: self-hosted + steps: - - name: Test de Conexión - run: echo "¡Gitea Actions está vivo!" \ No newline at end of file + - name: Descargar código vía Git Nativo + run: | + echo "Limpiando entorno temporal del runner..." + rm -rf ./* .git + + 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: Actualizar archivos en el directorio de producción + run: | + echo "Sincronizando archivos en /cirux..." + # Limpiamos el destino para evitar archivos obsoletos + rm -rf /cirux/* /cirux/.* 2>/dev/null + + # Copiamos todo el contenido nuevo al volumen mapeado + cp -r ./.[!.]* ./* /cirux/ 2>/dev/null || cp -r ./* /cirux/ + + - 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!"