Merge pull request #4 from hbmartin/separate-entry-points #8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| lint-and-test: | |
| name: Lint, Type Check, and Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20.x | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run TypeScript compiler check | |
| run: npm run typecheck | |
| - name: Run ESLint | |
| run: npm run lint | |
| - name: Check code formatting with Prettier | |
| run: npx prettier --check "src/**/*.{ts,tsx,js,jsx,json,css,md}" | |
| - name: Run tests | |
| run: npm test -- --run 2>/dev/null | |
| - name: Build library | |
| run: npm run build | |
| - name: Check bundle size | |
| run: | | |
| echo "Checking bundle sizes..." | |
| ls -lah dist/ | |
| find dist -name "*.js" -o -name "*.cjs" | xargs -I {} sh -c 'echo "{}: $(du -h {} | cut -f1)"' | |
| - name: Validate package.json | |
| run: | | |
| npx publint | |
| npx are-the-types-wrong --pack . | |
| continue-on-error: true | |
| code-quality: | |
| name: Code Quality Checks | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20.x | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Check for unused dependencies | |
| run: npx depcheck --ignores="@types/*" | |
| continue-on-error: true | |
| - name: Check for security vulnerabilities | |
| run: npm audit --audit-level=moderate | |
| continue-on-error: true | |
| - name: License compatibility check | |
| run: npx license-checker --production --summary | |
| continue-on-error: true |