From fe19c9d7c39a255604b8605b2d7bee085bc542c7 Mon Sep 17 00:00:00 2001 From: antonblaise <68864109+antonblaise@users.noreply.github.com> Date: Fri, 5 Dec 2025 15:32:23 +0800 Subject: [PATCH 1/7] Add server health check workflow to GitHub actions --- .github/workflows/server-health-check.yml | 46 +++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/server-health-check.yml diff --git a/.github/workflows/server-health-check.yml b/.github/workflows/server-health-check.yml new file mode 100644 index 0000000..9d32f8f --- /dev/null +++ b/.github/workflows/server-health-check.yml @@ -0,0 +1,46 @@ +name: Server Health Check + +on: [push, pull_request] + +jobs: + test-servers: + runs-on: windows-latest + steps: + - uses: actions/checkout@v6 + + - name: Install backend dependencies + run: npm ci + working-directory: backend + + - name: Install frontend dependencies + run: npm ci + working-directory: frontend + + - name: Build backend + run: npx tsc + working-directory: backend + + - name: Build frontend + run: npm run build + working-directory: frontend + + - name: Start backend + run: start /b cmd /c "cd backend && npm run dev" + + - name: Start frontend + run: start /b cmd /c "cd frontend && npm run dev" + + - name: Wait for servers to start + run: timeout /t 10 + + - name: Check backend health + run: curl --fail http://localhost:4000/ || exit 1 + + - name: Check frontend health + run: curl --fail http://localhost:5173/ || exit 1 + + - name: Kill backend + run: taskkill /IM node.exe /F + + - name: Kill frontend + run: taskkill /IM node.exe /F From a90e1f3fbaaef07480b0e1355dd89fba98e458c7 Mon Sep 17 00:00:00 2001 From: "Ha, How Ung (uif47658)" Date: Fri, 5 Dec 2025 15:37:39 +0800 Subject: [PATCH 2/7] server-health-check.yml maintenance --- .github/workflows/server-health-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/server-health-check.yml b/.github/workflows/server-health-check.yml index 9d32f8f..087b37a 100644 --- a/.github/workflows/server-health-check.yml +++ b/.github/workflows/server-health-check.yml @@ -25,10 +25,10 @@ jobs: working-directory: frontend - name: Start backend - run: start /b cmd /c "cd backend && npm run dev" + run: cmd /c "cd backend && npm run dev" - name: Start frontend - run: start /b cmd /c "cd frontend && npm run dev" + run: cmd /c "cd frontend && npm run dev" - name: Wait for servers to start run: timeout /t 10 From 22782c56b66ae983976e8f947a3040ec58cbf759 Mon Sep 17 00:00:00 2001 From: "Ha, How Ung (uif47658)" Date: Fri, 5 Dec 2025 15:42:07 +0800 Subject: [PATCH 3/7] ci: update server-health-check.yml --- .github/workflows/server-health-check.yml | 26 ++++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/.github/workflows/server-health-check.yml b/.github/workflows/server-health-check.yml index 087b37a..65c0047 100644 --- a/.github/workflows/server-health-check.yml +++ b/.github/workflows/server-health-check.yml @@ -1,6 +1,12 @@ name: Server Health Check -on: [push, pull_request] +on: + push: + branches: + - main + pull_request: + branches: + - main jobs: test-servers: @@ -8,6 +14,12 @@ jobs: steps: - uses: actions/checkout@v6 + - name: Create backend db directory + run: mkdir backend\db + + - name: Create backend database file + run: type nul > backend\db\progress-dashboard.db + - name: Install backend dependencies run: npm ci working-directory: backend @@ -16,17 +28,17 @@ jobs: run: npm ci working-directory: frontend - - name: Build backend + - name: Build backend (TypeScript) run: npx tsc working-directory: backend - - name: Build frontend + - name: Build frontend (Vite) run: npm run build working-directory: frontend - name: Start backend run: cmd /c "cd backend && npm run dev" - + - name: Start frontend run: cmd /c "cd frontend && npm run dev" @@ -38,9 +50,3 @@ jobs: - name: Check frontend health run: curl --fail http://localhost:5173/ || exit 1 - - - name: Kill backend - run: taskkill /IM node.exe /F - - - name: Kill frontend - run: taskkill /IM node.exe /F From 7d179c6f9886b09f04b2e635ef22cc372cc8334c Mon Sep 17 00:00:00 2001 From: "Ha, How Ung (uif47658)" Date: Fri, 5 Dec 2025 15:45:40 +0800 Subject: [PATCH 4/7] ci: update server-health-check.yml - wrap some commands in cmd /c. --- .github/workflows/server-health-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/server-health-check.yml b/.github/workflows/server-health-check.yml index 65c0047..90a457e 100644 --- a/.github/workflows/server-health-check.yml +++ b/.github/workflows/server-health-check.yml @@ -15,10 +15,10 @@ jobs: - uses: actions/checkout@v6 - name: Create backend db directory - run: mkdir backend\db + run: cmd /c "mkdir backend\db" - name: Create backend database file - run: type nul > backend\db\progress-dashboard.db + run: cmd /c "type nul > backend\db\progress-dashboard.db" - name: Install backend dependencies run: npm ci From 98160800249add21dd9a31f87d6534fbb0aaa0ef Mon Sep 17 00:00:00 2001 From: antonblaise <68864109+antonblaise@users.noreply.github.com> Date: Fri, 5 Dec 2025 22:07:58 +0800 Subject: [PATCH 5/7] Refactor server health check workflow for clarity --- .github/workflows/server-health-check.yml | 62 +++++++++++++++++------ 1 file changed, 47 insertions(+), 15 deletions(-) diff --git a/.github/workflows/server-health-check.yml b/.github/workflows/server-health-check.yml index 90a457e..57be91b 100644 --- a/.github/workflows/server-health-check.yml +++ b/.github/workflows/server-health-check.yml @@ -2,24 +2,35 @@ name: Server Health Check on: push: - branches: - - main + branches: [main] pull_request: - branches: - - main + branches: [main] jobs: test-servers: runs-on: windows-latest + steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v4 + # ------------------------- + # Backend DB Setup + # ------------------------- - name: Create backend db directory - run: cmd /c "mkdir backend\db" + run: mkdir backend\db - name: Create backend database file - run: cmd /c "type nul > backend\db\progress-dashboard.db" + run: type nul > backend\db\progress-dashboard.db + + # ------------------------- + # Install wait-on + # ------------------------- + - name: Install wait-on + run: npm install -g wait-on + # ------------------------- + # Install Dependencies + # ------------------------- - name: Install backend dependencies run: npm ci working-directory: backend @@ -28,6 +39,9 @@ jobs: run: npm ci working-directory: frontend + # ------------------------- + # Build + # ------------------------- - name: Build backend (TypeScript) run: npx tsc working-directory: backend @@ -36,17 +50,35 @@ jobs: run: npm run build working-directory: frontend + # ------------------------- + # Start Backend + # ------------------------- - name: Start backend - run: cmd /c "cd backend && npm run dev" + run: | + cd backend + start /B npm start + shell: cmd + + - name: Wait for backend + run: wait-on http://localhost:4000 + # ------------------------- + # Start Frontend (Vite Preview) + # ------------------------- - name: Start frontend - run: cmd /c "cd frontend && npm run dev" + run: | + cd frontend + start /B npm run preview + shell: cmd - - name: Wait for servers to start - run: timeout /t 10 + - name: Wait for frontend + run: wait-on http://localhost:5173 - - name: Check backend health - run: curl --fail http://localhost:4000/ || exit 1 + # ------------------------- + # ✅ Basic Health Check Tests + # ------------------------- + - name: Test backend API + run: curl http://localhost:4000 - - name: Check frontend health - run: curl --fail http://localhost:5173/ || exit 1 + - name: Test frontend + run: curl http://localhost:5173 From bbb703be6fc3393278201956b87038c9eb9490db Mon Sep 17 00:00:00 2001 From: antonblaise <68864109+antonblaise@users.noreply.github.com> Date: Fri, 5 Dec 2025 22:12:40 +0800 Subject: [PATCH 6/7] Update commands for Windows compatibility --- .github/workflows/server-health-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/server-health-check.yml b/.github/workflows/server-health-check.yml index 57be91b..bf6a4b0 100644 --- a/.github/workflows/server-health-check.yml +++ b/.github/workflows/server-health-check.yml @@ -17,10 +17,10 @@ jobs: # Backend DB Setup # ------------------------- - name: Create backend db directory - run: mkdir backend\db + run: cmd /c "mkdir backend\db" - name: Create backend database file - run: type nul > backend\db\progress-dashboard.db + run: cmd /c "type nul > backend\db\progress-dashboard.db" # ------------------------- # Install wait-on From be65ba2f01990ffaa515e56247ca936f18a09e3d Mon Sep 17 00:00:00 2001 From: antonblaise <68864109+antonblaise@users.noreply.github.com> Date: Fri, 5 Dec 2025 22:23:23 +0800 Subject: [PATCH 7/7] Change backend start command to use node --- .github/workflows/server-health-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/server-health-check.yml b/.github/workflows/server-health-check.yml index bf6a4b0..5526b0e 100644 --- a/.github/workflows/server-health-check.yml +++ b/.github/workflows/server-health-check.yml @@ -56,7 +56,7 @@ jobs: - name: Start backend run: | cd backend - start /B npm start + start /B node dist/index.js shell: cmd - name: Wait for backend