From 7ced9d38f065a16abd88bf1dc4a930098752601b Mon Sep 17 00:00:00 2001 From: vsxd Date: Tue, 17 Mar 2026 11:12:00 +0800 Subject: [PATCH] Add PR test workflow --- .github/workflows/pr-tests.yml | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .github/workflows/pr-tests.yml diff --git a/.github/workflows/pr-tests.yml b/.github/workflows/pr-tests.yml new file mode 100644 index 00000000..85116cbd --- /dev/null +++ b/.github/workflows/pr-tests.yml @@ -0,0 +1,76 @@ +name: PR Tests + +on: + pull_request: + types: + - opened + - synchronize + - reopened + - ready_for_review + workflow_dispatch: + +concurrency: + group: pr-tests-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + web-tests: + name: Web Build And Test + if: ${{ github.event_name != 'pull_request' || !github.event.pull_request.draft }} + runs-on: ubuntu-latest + defaults: + run: + working-directory: web + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + cache-dependency-path: web/pnpm-lock.yaml + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build frontend + run: pnpm build + + - name: Run frontend unit tests + run: pnpm test + + server-tests: + name: Server Unit Tests + if: ${{ github.event_name != 'pull_request' || !github.event.pull_request.draft }} + runs-on: ubuntu-latest + defaults: + run: + working-directory: server + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 21 + cache: maven + + - name: Ensure Maven wrapper is executable + run: chmod +x mvnw + + - name: Run backend unit tests + run: ./mvnw test