name: CI on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: permissions: actions: write contents: read jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6.0.2 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Run tests run: npm test - name: Check test coverage run: npm run test:coverage dist-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6.0.2 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Build dist run: npm run build - name: Check if dist is up to date run: | if [ -n "$(git status --porcelain dist/)" ]; then echo "::error::dist/ is not up to date. Please run 'npm run build' and commit the changes." git diff dist/ exit 1 fi