From 8d1e49fc29a61239a7a99a7848ac7308615263d2 Mon Sep 17 00:00:00 2001 From: omar Date: Tue, 21 Oct 2025 18:54:33 +0300 Subject: [PATCH] Update .gitea/workflows/sgeupdated.yml --- .gitea/workflows/sgeupdated.yml | 114 ++++++++++++++++++-------------- 1 file changed, 64 insertions(+), 50 deletions(-) diff --git a/.gitea/workflows/sgeupdated.yml b/.gitea/workflows/sgeupdated.yml index 1973d13..a47f898 100644 --- a/.gitea/workflows/sgeupdated.yml +++ b/.gitea/workflows/sgeupdated.yml @@ -1,3 +1,15 @@ +name: sgeUpdated CI/CD + +on: + push: + branches: + - main # Trigger when code is pushed/merged into main + workflow_dispatch: # Allow manual trigger + +concurrency: + group: sgeupdated-deploy-${{ github.ref }} + cancel-in-progress: true + jobs: deploy: runs-on: ubuntu-latest @@ -5,58 +17,60 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 - with: - # Fetch all history so we can diff the 'before' and 'after' SHAs - fetch-depth: 0 + # We no longer need fetch-depth: 2 - - name: Detect changed files - id: detect - run: | - echo "🔍 Checking which files changed..." - FRONTEND_CHANGED=false - BACKEND_CHANGED=false + # + # The "Detect changed files" step has been REMOVED + # - # 1. Handle MANUAL RUN (workflow_dispatch) - # If triggered manually, assume we want to deploy everything. - if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then - echo " MANUAL RUN: Forcing deployment for both frontend and backend." - FRONTEND_CHANGED=true - BACKEND_CHANGED=true - - # 2. Handle FIRST PUSH (before SHA is all zeros) - # If this is the first push to a new branch, deploy everything. - elif [ "${{ github.event.before }}" == "0000000000000000000000000000000000000000" ]; then - echo " NEW BRANCH/FIRST PUSH: Forcing deployment for both." - FRONTEND_CHANGED=true - BACKEND_CHANGED=true - - # 3. Handle a normal PUSH event - # Reliably diff between the two SHAs of the push. - else - echo " PUSH EVENT: Diffing from ${{ github.event.before }} to ${{ github.event.after }}" - CHANGED=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }}) - - echo "--- Changed Files ---" - echo "$CHANGED" - echo "---------------------" - - echo "$CHANGED" | grep -q '^sgeUpdated/sge-frontend/' && FRONTEND_CHANGED=true || true - echo "$CHANGED" | grep -q '^sgeUpdated/sge-backend/' && BACKEND_CHANGED=true || true - fi - - # 4. Set outputs - echo "frontend=$FRONTEND_CHANGED" >> $GITHUB_OUTPUT - echo "backend=$BACKEND_CHANGED" >> $GITHUB_OUTPUT - - echo "✅ Frontend changed: $FRONTEND_CHANGED" - echo "✅ Backend changed: $BACKEND_CHANGED" - - # ... your Deploy Backend and Deploy Frontend steps remain the same ... - - name: Deploy Backend - if: ${{ steps.detect.outputs.backend == 'true' }} - # ... (rest of your step) ... + # The 'if:' condition has been REMOVED + 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 + + echo "🚀 Starting backend deployment..." + cd /home/ubuntu/Bgreen/sgeUpdated + git fetch origin main + git reset --hard origin/main + + echo "⚙️ Rebuilding Backend..." + cd sgeUpdated/sge-backend + /opt/apache-maven-3.9.11/bin/mvn clean install -DskipTests + cd ../.. + docker compose up -d --build bgreen-backend + + echo "✅ Backend deployment complete!" + docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}' - name: Deploy Frontend - if: ${{ steps.detect.outputs.frontend == 'true' }} - # ... (rest of your step) ... \ No newline at end of file + # The 'if:' condition has been REMOVED + 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 + + echo "🚀 Starting frontend deployment..." + cd /home/ubuntu/Bgreen/sgeUpdated + git fetch origin main + git reset --hard origin/main + + echo "⚙️ Rebuildingg Frontend..." + cd sgeUpdated/sge-frontend + # Uncomment below if needed: + # npm ci + # npm run build + cd ../.. + docker compose up -d --build bgreen-frontend + + echo "✅ Frontend deployment complete!" + docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}' \ No newline at end of file