name: CI on: push: branches: [master] pull_request: branches: [master] jobs: test-parser: runs-on: debian-latest 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: Run parser tests run: npx jest tests/parser.test.ts tests/highlight.test.ts --forceExit --maxWorkers=1 --testTimeout=15000 env: NODE_OPTIONS: --max-old-space-size=4096 test-core: runs-on: debian-latest 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: Run core tests run: npx jest tests/core.test.ts tests/plugins.test.ts tests/index.test.ts --forceExit --maxWorkers=1 --testTimeout=15000 env: NODE_OPTIONS: --max-old-space-size=4096 test-rest: runs-on: debian-latest 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: Run remaining tests run: npx jest tests/themes.test.ts tests/i18n.test.ts tests/utils.test.ts tests/animations.test.ts tests/styles.test.ts --forceExit --maxWorkers=1 --testTimeout=15000 env: NODE_OPTIONS: --max-old-space-size=4096 verify: runs-on: debian-latest timeout-minutes: 15 strategy: matrix: node-version: [18.x, 20.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: Build run: npm run build