fix(ci): improve link validation resilience - continue on file errors #25
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] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| ci: | |
| name: CI (Node ${{ matrix.node-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20.x, 22.x] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup 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: Run linting | |
| run: npm run lint | |
| - name: Run type checking | |
| run: npm run type-check | |
| - name: Validate documentation links | |
| run: npm run validate:links | |
| - name: Validate documentation examples | |
| run: npm run validate:examples | |
| - name: Run tests | |
| run: npm test | |
| - name: Generate coverage report | |
| run: npm run test:coverage | |
| - name: Build project | |
| run: npm run build | |
| - name: Validate build artifacts | |
| run: | | |
| test -d dist || exit 1 | |
| test -f dist/esm/index.js || exit 1 | |
| test -f dist/cjs/index.js || exit 1 | |
| test -f dist/esm/index.d.ts || exit 1 | |
| echo "Build artifacts validated successfully" | |
| - name: Upload coverage to Codecov (Node 20.x only) | |
| if: matrix.node-version == '20.x' | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| fail_ci_if_error: false | |
| - name: Generate API documentation | |
| if: matrix.node-version == '20.x' | |
| run: npm run docs:api | |
| - name: Validate API documentation | |
| if: matrix.node-version == '20.x' | |
| run: | | |
| test -d docs/api || exit 1 | |
| test -f docs/api/index.html || exit 1 | |
| test -f docs/api/assets/search.js || exit 1 | |
| echo "API documentation validated successfully" | |
| - name: Upload API docs artifact | |
| if: matrix.node-version == '20.x' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: api-docs | |
| path: docs/api/ | |
| retention-days: 30 |