Add PR test workflow

This commit is contained in:
vsxd 2026-03-17 11:12:00 +08:00 committed by Xudong Sun
parent 68de48933a
commit 7ced9d38f0

76
.github/workflows/pr-tests.yml vendored Normal file
View file

@ -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