gohorsejobs/.forgejo/workflows/deploy.yaml
Tiago Yamamoto a5bb7b2a31 feat: add backend tests to CI pipeline, improve responsive design, add unit tests
- Add test-backend job to .forgejo/workflows/deploy.yaml
- Fix JobService and TicketService tests
- Create ticket_service_test.go
- Create frontend unit tests (forgot-password, jobs/[id], dashboard/users)
- Improve responsiveness for users page, forgot-password, and apply page
2025-12-28 01:27:48 -03:00

65 lines
No EOL
1.9 KiB
YAML

name: Deploy Backend (Dev)
on:
push:
branches:
- dev
paths:
- 'backend/**'
jobs:
# Job 1: Run Backend Tests
test-backend:
runs-on: docker
container:
image: golang:1.24-alpine
steps:
- name: Checkout code
uses: https://github.com/actions/checkout@v4
- name: Install dependencies
run: |
cd backend
go mod download
- name: Run tests
run: |
cd backend
go test -v ./internal/services/...
go test -v ./internal/core/usecases/...
# Job 2: Deploy (only if tests pass)
deploy-backend-dev:
runs-on: docker
needs: test-backend
steps:
- name: Executar Deploy via SSH na Apolo (Ambiente Dev)
uses: https://github.com/appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.PORT || 22 }}
script: |
# 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
# 2. Atualiza o código na branch dev
git fetch origin
git checkout dev
git pull origin dev
# 3. Build da imagem com o prefixo localhost/ para evitar erro de short-name resolution
podman build -t localhost/gohorsejobs-backend-dev:latest ./backend
# 4. Reinicia o serviço via Systemd (Quadlet)
sudo systemctl restart gohorsejobs-backend-dev
# 5. Limpeza de imagens antigas para economizar espaço na VPS
podman image prune -f