name: Despliegue Automático Cirux on: push: branches: - main #egúrate de que tu rama principal sea 'main'. Si es 'master', cámbialo aquí. jobs: deploy: runs-on: self-hosted steps: - 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!"