name: CI

env:
  NPM_CONFIG_REGISTRY: https://registry.npmmirror.com
  NPM_CONFIG_AUDIT: "false"
  NPM_CONFIG_FUND: "false"
  NPM_CONFIG_REPLACE_REGISTRY_HOST: always
  CI: "true"

on:
  pull_request:
    branches: [main]
  workflow_dispatch:

jobs:
  check:
    runs-on: ubuntu-latest
    container: node:22.22.0-bookworm
    timeout-minutes: 30

    steps:
      - name: Checkout
        uses: https://gitee.com/mirrors_actions/checkout@v4
        with:
          github-server-url: https://git.gongxue100.com
          fetch-depth: 1

      - name: Install dependencies
        run: npm ci

      - name: Lint
        run: |
          npm run lint -w @gongxue/admin
          npm run lint -w @gongxue/server -- --quiet

      - name: Type check
        run: npm run typecheck

      - name: Build frontend
        run: npm run build -w @gongxue/admin

      - name: Run backend tests
        run: npm run test -w @gongxue/server -- --runInBand --forceExit
