# .gitea/workflows/sgeupdated.yml name: sgeUpdated CI/CD on: push: branches: - main workflow_dispatch: concurrency: group: sgeupdated-deploy-${{ github.ref }} cancel-in-progress: true jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v3 - name: Deploy over SSH uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} key: ${{ secrets.SSH_PRIVATE_KEY }} script_stop: true script: | set -euo pipefail cd /home/ubuntu/sgeUpdated git fetch origin main git reset --hard origin/main # Rebuild backend if it has changed if git diff --name-only HEAD~1 HEAD | grep -q "^sge-backend/"; then echo "⚡ Rebuilding Backend..." cd sge-backend /opt/apache-maven-3.9.11/bin/mvn clean install -DskipTests cd .. docker compose up -d --build backend else echo "✅ Backend unchanged, skipping rebuild." fi # Rebuild frontend if it has changed if git diff --name-only HEAD~1 HEAD | grep -q "^sge-frontend/"; then echo "⚡ Rebuilding Frontend..." cd sge-frontend rm -rf node_modules package-lock.json npm cache clean --force npm install npm run build cd .. docker compose up -d --build frontend else echo "✅ Frontend unchanged, skipping rebuild." fi echo "✅ Deployment complete. Current containers:" docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'