# .gitea/workflows/sgeupdated.yml name: sgeUpdated CI/CD on: push: branches: - main # trigger only when code is merged into main 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: | cd /home/ubuntu/sgeUpdated git fetch origin main git reset --hard origin/main echo "🔍 Detecting changes..." CHANGED_FILES=$(git diff --name-only HEAD^ HEAD || true) echo "Changed files: $CHANGED_FILES" # --- Backend --- if echo "$CHANGED_FILES" | grep -E "(^|/)sge-backend/"; then echo "⚙️ Backend changes detected. Rebuilding backend..." cd sge-backend mvn clean install -DskipTests cd .. docker compose build --no-cache backend docker compose up -d --force-recreate backend else echo "✅ No backend changes detected." fi # --- Frontend --- if echo "$CHANGED_FILES" | grep -E "(^|/)sge-frontend/"; then echo "⚙️ Frontend changes detected. Rebuilding frontend..." cd sge-frontend npm install npm run build cd .. docker compose build --no-cache frontend docker compose up -d --force-recreate frontend else echo "✅ No frontend changes detected." fi