name: CI on: push: branches: [master] pull_request: branches: [master] jobs: test: runs-on: debian-latest strategy: matrix: node-version: [18.x, 20.x, 22.x, 24.x] steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' - name: Install dependencies run: npm ci - name: Type check run: npm run typecheck - name: Lint run: npm run lint continue-on-error: true - name: Run tests run: npx jest --forceExit --maxWorkers=2 --no-cache env: NODE_OPTIONS: --max-old-space-size=4096 - name: Build run: npm run build e2e: runs-on: debian-latest # 与 MetonaEditor 一致:Playwright 官方镜像(自带 Chromium 与全部系统依赖), # 避免 runner 宿主(Debian 11)不被 Playwright 1.62 支持的问题 container: mcr.microsoft.com/playwright:v1.62.1-noble timeout-minutes: 15 steps: - uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 22.x cache: 'npm' - name: Install dependencies run: npm ci - name: Build run: npm run build - name: Verify Playwright browsers run: npx playwright install chromium - name: Run E2E smoke tests run: npm run test:e2e