Files
gkachele-saas/.gitea/workflows/deploy.yml
komkida91 9a1bbb29fa
Some checks failed
Deploy GKACHELE App / deploy (push) Has been cancelled
fix: Use self-hosted runner for deployment
2026-01-31 17:47:04 +01:00

62 lines
2.9 KiB
YAML

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: self-hosted # Usaremos tu Raspberry Pi como runner auto-alojado
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
port: ${{ secrets.SSH_PORT }} # Puerto SSH, que es 2222
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."