ci: refine deploy workflow with podman fixes, dir check and action url

This commit is contained in:
Tiago Yamamoto 2025-12-27 23:17:32 -03:00
parent 83e16d78f6
commit 82e55ed9ac

View file

@ -3,37 +3,43 @@ name: Deploy Backend (Dev)
on: on:
push: push:
branches: branches:
- dev # O deploy só será disparado quando você enviar código para a branch 'dev' - dev
paths: paths:
- 'backend/**' # O deploy só dispara se houver mudança especificamente na pasta do backend - 'backend/**'
jobs: jobs:
deploy-backend-dev: deploy-backend-dev:
# Usamos 'docker' porque é a label que seu runner atual possui
runs-on: docker runs-on: docker
steps: steps:
- name: Executar Deploy via SSH na Apolo (Ambiente Dev) - name: Executar Deploy via SSH na Apolo (Ambiente Dev)
uses: appleboy/ssh-action@v1.0.3 # Ajustado para usar a URL completa do GitHub para evitar o erro 'repository not found'
uses: https://github.com/appleboy/ssh-action@v1.0.3
with: with:
host: ${{ secrets.HOST }} host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }} username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }} key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.PORT || 22 }} port: ${{ secrets.PORT || 22 }}
script: | script: |
# 1. Navega até a pasta onde está o código # 1. Verifica se o diretório existe, senão cria e faz o clone inicial
if [ ! -d "/mnt/data/gohorsejobs" ]; then
sudo mkdir -p /mnt/data/gohorsejobs
sudo chown $USER:$USER /mnt/data/gohorsejobs
git clone https://forgejo-gru.rede5.com.br/rede5/gohorsejobs.git /mnt/data/gohorsejobs
fi
cd /mnt/data/gohorsejobs cd /mnt/data/gohorsejobs
# 2. Garante que está na branch dev e atualiza o código # 2. Atualiza o código na branch dev
git fetch origin git fetch origin
git checkout dev git checkout dev
git pull origin dev git pull origin dev
# 3. Build isolado da imagem do backend # 3. Build da imagem com o prefixo localhost/ para evitar erro de short-name resolution
# O comando aponta para a subpasta './backend' conforme sua estrutura de arquivos podman build -t localhost/gohorsejobs-backend-dev:latest ./backend
podman build -t gohorsejobs-backend-dev ./backend
# 4. Reinicia o serviço específico de desenvolvimento # 4. Reinicia o serviço via Systemd (Quadlet)
# Recomendado ter um serviço/container separado para dev (ex: gohorsejobs-backend-dev)
sudo systemctl restart gohorsejobs-backend-dev sudo systemctl restart gohorsejobs-backend-dev
# 5. Limpeza de imagens antigas # 5. Limpeza de imagens antigas para economizar espaço na VPS
podman image prune -f podman image prune -f