feat: Add Gitea Actions deploy workflow
Some checks failed
Deploy GKACHELE App / deploy (push) Has been cancelled
Some checks failed
Deploy GKACHELE App / deploy (push) Has been cancelled
This commit is contained in:
61
.gitea/workflows/deploy.yml
Normal file
61
.gitea/workflows/deploy.yml
Normal file
@@ -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."
|
||||
Reference in New Issue
Block a user