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/Bgreen/sgeUpdated git fetch origin main # Detect which files changed in the last commit CHANGED_FILES=$(git diff --name-only HEAD HEAD~1) echo "🪶 Changed files:" echo "$CHANGED_FILES" git reset --hard origin/main BACKEND_CHANGED=false FRONTEND_CHANGED=false # Check if backend folder changed if echo "$CHANGED_FILES" | grep -q "^sgeUpdated/sge-backend/"; then BACKEND_CHANGED=true fi # Check if frontend folder changed if echo "$CHANGED_FILES" | grep -q "^sgeUpdated/sge-frontend/"; then FRONTEND_CHANGED=true fi # Backend section #if [ "$BACKEND_CHANGED" = true ]; then #echo "⚡ Backend changes detected." #cd sgeUpdated/sge-backend #echo "Running Maven build..." #/opt/apache-maven-3.9.11/bin/mvn clean install -DskipTests # cd ../.. #echo "Rebuilding backend Docker container..." #docker compose up -d --build bgreen-backend #else #echo "✅ No backend changes." #fi # Frontend section if [ "$FRONTEND_CHANGED" = true ]; then echo "⚡ Frontend changes detected." cd sgeUpdated/sge-frontend echo "Running npm build..." # npm install # npm run build cd ../.. echo "Rebuilding frontend Docker container..." docker compose up -d --build --remove-orphans || \ #docker compose up -d --build bgreen-frontend else echo "✅ No frontend changes." fi # If no changes at all, just restart containers (commented out for now) #if [ "$BACKEND_CHANGED" = false ] && [ "$FRONTEND_CHANGED" = false ]; then #echo "♻️ No source changes detected. (Would restart containers here...)" #docker compose up -d #fi echo "✅ Check complete. (No rebuild or restart performed.)"