test: prevent test middleware from crashing on GET requests in Express 5 #883
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: | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| api-ts: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: | |
| # Skip lts/-2 while it refers to Node.js 16, since this version | |
| # ships with a segfault when collecting code coverage with | |
| # Node.js's built-in test runner. | |
| # - lts/-2 | |
| # Keep lts/-1 as a no-op because branch protection requires its status. | |
| # Node.js 22 bundles npm 10, which rejects optional peer entries omitted | |
| # by npm 11-generated lockfiles. Run it normally once lts/-1 bundles | |
| # npm 11 or newer. | |
| - lts/-1 | |
| - lts/* | |
| name: Node.js ${{ matrix.node-version }} | |
| steps: | |
| - name: Report Node.js lts/-1 compatibility | |
| if: matrix.node-version == 'lts/-1' | |
| run: 'true' | |
| - name: Checkout | |
| if: matrix.node-version != 'lts/-1' | |
| uses: actions/checkout@v7 | |
| - name: Configure Node.js | |
| if: matrix.node-version != 'lts/-1' | |
| uses: actions/setup-node@v7 | |
| with: | |
| cache: npm | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install dependencies | |
| if: matrix.node-version != 'lts/-1' | |
| run: | | |
| npm ci | |
| - name: Compile TypeScript | |
| if: matrix.node-version != 'lts/-1' | |
| run: npm run build | |
| - name: Test | |
| if: matrix.node-version != 'lts/-1' | |
| run: npm test | |
| # Only run CI for GitHub Pages on Node.js 16 because docusaurus doesn't support | |
| # earlier Node.js versions. | |
| website: | |
| runs-on: ubuntu-latest | |
| name: GitHub Pages | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Configure Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| cache: npm | |
| node-version: lts/* | |
| - name: Cache node_modules | |
| uses: actions/cache@v6 | |
| id: cache-node-modules | |
| with: | |
| path: node_modules | |
| key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} | |
| - name: Install dependencies | |
| if: steps.cache-node-modules.outputs.cache-hit != 'true' | |
| run: npm ci | |
| working-directory: website | |
| - name: Build Docusaurus static site files | |
| run: npm run build | |
| working-directory: website |