- Use Google Distroless images for all services (Go & Node.js). - Standardize documentation with [PROJECT-NAME].md. - Add .dockerignore and .gitignore to all projects. - Remove docker-compose.yml in favor of docker run instructions. - Fix Go version and dependency issues in observability, repo-integrations, and security-governance. - Add Podman support (fully qualified image names). - Update Dashboard to use Node.js static server for Distroless compatibility.
82 lines
No EOL
3.1 KiB
YAML
82 lines
No EOL
3.1 KiB
YAML
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 |