From 647a00d895cbfe81963f7d54a2689c47ffd55b4e Mon Sep 17 00:00:00 2001 From: komkida91 Date: Sat, 31 Jan 2026 16:43:49 +0100 Subject: [PATCH] feat: Add Gitea Actions deploy workflow --- .gitea/workflows/deploy.yml | 61 +++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .gitea/workflows/deploy.yml diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..ade7c75 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,61 @@ +name: Deploy GKACHELE App + +on: + push: + branches: + - feature/docker-setup # Activa el workflow al hacer push a esta rama para pruebas iniciales + workflow_dispatch: # Permite ejecutar el workflow manualmente desde la interfaz de Gitea + +jobs: + deploy: + runs-on: ubuntu-latest # Usaremos un runner gestionado por Gitea. + # Si quieres un runner en tu Pi, necesitarás instalarlo y luego cambiar a 'self-hosted' + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Docker BuildX + uses: docker/setup-buildx-action@v2 + + - name: Login to Docker Hub (o tu registro Gitea) + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} # Tu usuario de Docker Hub o Gitea + password: ${{ secrets.DOCKER_PASSWORD }} # Tu token/contraseña de Docker Hub o Gitea + # Si usas el registro de Gitea, necesitarías ajustar 'registry' en esta acción + + - name: Build and Push Docker image + uses: docker/build-push-action@v4 + with: + context: ./demo # Ruta al Dockerfile de tu aplicación Flask + push: true + tags: ${{ secrets.DOCKER_USERNAME }}/gkachele-app:latest # Formato: tu_usuario_docker/nombre_imagen:tag + # Si usas el registro de Gitea, el tag sería algo como: ${{ secrets.GITEA_REGISTRY_URL }}/owner/gkachele-app:latest + + - name: Deploy to Raspberry Pi via SSH + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.SSH_HOST }} # IP o hostname de tu Raspberry Pi + username: ${{ secrets.SSH_USERNAME }} # Usuario SSH en tu Raspberry Pi (e.g., 'pi') + key: ${{ secrets.SSH_PRIVATE_KEY }} # Clave SSH privada (sin passphrase) para autenticación sin contraseña + script: | + echo "Iniciando despliegue de la app GKACHELE™ en Raspberry Pi..." + + # Autenticarse en el registro Docker (necesario para 'docker pull' si la imagen es privada o de Docker Hub) + # Asegúrate de que el user/pass sea el mismo que el del 'Login to Docker Hub' step + docker login -u "${{ secrets.DOCKER_USERNAME }}" -p "${{ secrets.DOCKER_PASSWORD }}" + + # Descargar la última imagen + docker pull ${{ secrets.DOCKER_USERNAME }}/gkachele-app:latest # Reemplaza con tu usuario/repositorio + + # Detener y eliminar el contenedor existente (si hay uno con el mismo nombre) + docker stop gkachele-instance || true + docker rm gkachele-instance || true + + # Iniciar un nuevo contenedor + # Nota: Esto es una ejecución manual. Posteriormente, lo haremos con 'docker-compose up -d' + # una vez que tengamos el docker-compose.yml específico para la Pi. + docker run -d -p 5001:5001 --name gkachele-instance ${{ secrets.DOCKER_USERNAME }}/gkachele-app:latest + + echo "Despliegue de GKACHELE™ en Raspberry Pi completado."