name: CI on: push: branches: [main] pull_request: branches: [main] jobs: lint: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - run: npm ci - run: npm run lint typecheck: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - run: npm ci - run: npm run tsc test: runs-on: ubuntu-latest timeout-minutes: 10 permissions: checks: write steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - run: npm ci - run: npx vitest run --reporter=default --reporter=junit --outputFile=test-results.xml - uses: dorny/test-reporter@v1 if: always() with: name: Test Results path: test-results.xml reporter: java-junit build: runs-on: ubuntu-latest timeout-minutes: 10 needs: [lint, typecheck, test] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - run: npm ci - run: npm run build