name: Deploy Stack (Dev) on: push: branches: - dev paths: - 'backend/**' - 'backoffice/**' - 'frontend/**' env: REGISTRY: rg.fr-par.scw.cloud/funcscwinfrastructureascodehdz4uzhb NAMESPACE: a5034510-9763-40e8-ac7e-1836e7a61460 jobs: # Job: Deploy no Servidor (Pull das imagens do Scaleway) deploy-dev: runs-on: docker steps: - name: Checkout code uses: https://github.com/actions/checkout@v4 with: fetch-depth: 2 - name: Check changed files id: check run: | if git diff --name-only HEAD~1 HEAD | grep -q "^backend/"; then echo "backend=true" >> $GITHUB_OUTPUT else echo "backend=false" >> $GITHUB_OUTPUT fi if git diff --name-only HEAD~1 HEAD | grep -q "^frontend/"; then echo "frontend=true" >> $GITHUB_OUTPUT else echo "frontend=false" >> $GITHUB_OUTPUT fi if git diff --name-only HEAD~1 HEAD | grep -q "^backoffice/"; then echo "backoffice=true" >> $GITHUB_OUTPUT else echo "backoffice=false" >> $GITHUB_OUTPUT fi - name: Deploy via SSH 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: | # Login no Scaleway Registry echo "${{ secrets.SCW_SECRET_KEY }}" | podman login ${{ env.REGISTRY }} -u nologin --password-stdin # --- DEPLOY DO BACKEND --- if [ "${{ steps.check.outputs.backend }}" == "true" ]; then echo "Pulling e reiniciando Backend..." podman pull ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/backend:dev-latest podman tag ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/backend:dev-latest localhost/gohorsejobs-backend-dev:latest sudo systemctl restart gohorsejobs-backend-dev fi # --- DEPLOY DO FRONTEND --- if [ "${{ steps.check.outputs.frontend }}" == "true" ]; then echo "Pulling e reiniciando Frontend..." podman pull ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/frontend:dev-latest podman tag ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/frontend:dev-latest localhost/gohorsejobs-frontend-dev:latest sudo systemctl restart gohorsejobs-frontend-dev fi # --- DEPLOY DO BACKOFFICE --- if [ "${{ steps.check.outputs.backoffice }}" == "true" ]; then echo "Pulling e reiniciando Backoffice..." podman pull ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/backoffice:dev-latest podman tag ${{ env.REGISTRY }}/${{ env.NAMESPACE }}/backoffice:dev-latest localhost/gohorsejobs-backoffice-dev:latest sudo systemctl restart gohorsejobs-backoffice-dev fi # --- LIMPEZA --- echo "Limpando imagens antigas..." podman image prune -f || true