chore(deps): update all dependencies #1656
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: Node.js CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| name: build (${{ matrix.node-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: &node-versions [^22, ^24, ^26] | |
| env: | |
| NODE_VERSION: ${{ matrix.node-version }} | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: setup | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - run: pnpm ci | |
| - name: adjust @types/node version | |
| run: | | |
| sed -i 's/\("@types\/node": \).*/\1'"${NODE_VERSION}"'/' pnpm-workspace.yaml | |
| pnpm i --no-frozen-lockfile | |
| - run: pnpm run build | |
| - run: pnpm run ci-lint | |
| - name: Check for uncommitted changes | |
| run: ./scripts/assert-clean-working-directory.sh | |
| - name: Create workspace archive | |
| env: | |
| RUNNER_TEMP: ${{ runner.temp }} | |
| run: | | |
| tar --exclude='./node_modules' \ | |
| --exclude='./**/node_modules' \ | |
| --exclude='./.git' \ | |
| --exclude='./coverage' \ | |
| --exclude='./**/*.log' \ | |
| -cvf "${RUNNER_TEMP}/workspace.tar" . | |
| - name: Upload workspace | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: workspace-${{ matrix.node-version }} | |
| path: ${{ runner.temp }}/workspace.tar | |
| retention-days: 7 | |
| build-docs: | |
| name: build-docs (${{ matrix.node-version }}) | |
| needs: build | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [^26] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: setup | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| id: nextjs-cache | |
| with: | |
| path: packages/documentation/.next/cache | |
| key: ${{ runner.os }}-nextjs-${{ hashFiles('pnpm-lock.yaml') }}-${{ hashFiles('**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx') }} | |
| restore-keys: | | |
| ${{ runner.os }}-nextjs-${{ hashFiles('pnpm-lock.yaml') }}- | |
| - name: Download built workspace | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| name: workspace-${{ matrix.node-version }} | |
| path: ${{runner.temp}} | |
| - name: Extract workspace | |
| env: | |
| RUNNER_TEMP: ${{ runner.temp }} | |
| run: | | |
| tar -xf "${RUNNER_TEMP}/workspace.tar" -C . | |
| - run: pnpm ci | |
| - run: pnpm run build:docs | |
| unit: | |
| name: unit (${{ matrix.node-version }}) | |
| needs: build | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: *node-versions | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: setup | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Download built workspace | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| name: workspace-${{ matrix.node-version }} | |
| path: ${{runner.temp}} | |
| - name: Extract workspace | |
| env: | |
| RUNNER_TEMP: ${{ runner.temp }} | |
| run: | | |
| tar -xf "${RUNNER_TEMP}/workspace.tar" -C . | |
| - run: pnpm ci | |
| - run: pnpm run ci-test | |
| - name: Check for uncommitted changes | |
| run: ./scripts/assert-clean-working-directory.sh | |
| integration: | |
| name: integration (${{ matrix.node-version }}, ${{ matrix.schema-builder }}) | |
| needs: build | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: *node-versions | |
| schema-builder: [joi, zod-v3, zod-v4] | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: setup | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Download built workspace | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| name: workspace-${{ matrix.node-version }} | |
| path: ${{runner.temp}} | |
| - name: Extract workspace | |
| env: | |
| RUNNER_TEMP: ${{ runner.temp }} | |
| run: | | |
| tar -xf "${RUNNER_TEMP}/workspace.tar" -C . | |
| - run: pnpm ci | |
| - run: pnpm run integration:clean | |
| - run: pnpm run integration:generate --schema-builder "${SCHEMA_BUILDER}" | |
| env: | |
| SCHEMA_BUILDER: ${{ matrix.schema-builder }} | |
| - run: pnpm run integration:validate | |
| - name: Check for uncommitted changes | |
| if: ${{ matrix.schema-builder == 'zod-v4' }} | |
| run: ./scripts/assert-clean-working-directory.sh | |
| e2e: | |
| name: e2e (${{ matrix.node-version }}) | |
| needs: build | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: *node-versions | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: setup | |
| uses: ./.github/actions/setup-node-pnpm | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Download built workspace | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| name: workspace-${{ matrix.node-version }} | |
| path: ${{runner.temp}} | |
| - name: Extract workspace | |
| env: | |
| RUNNER_TEMP: ${{ runner.temp }} | |
| run: | | |
| tar -xf "${RUNNER_TEMP}/workspace.tar" -C . | |
| - run: pnpm ci | |
| - run: SCHEMA_BUILDER=zod-v3 pnpm run e2e:generate | |
| - run: pnpm run e2e:validate | |
| - run: SCHEMA_BUILDER=zod-v4 pnpm run e2e:generate | |
| - run: pnpm run e2e:validate | |
| - name: Check for uncommitted changes | |
| run: ./scripts/assert-clean-working-directory.sh | |
| windows: | |
| name: windows | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 | |
| - name: Use Node.js | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| registry-url: "https://registry.npmjs.org" | |
| node-version: 26.6.0 | |
| cache: "pnpm" | |
| - run: pnpm ci | |
| - run: pnpm run build | |
| # todo: make unit tests compatible with windows hosts | |
| # - run: pnpm run test | |
| - run: pnpm run integration:generate --schema-builder=zod-v4 | |
| shell: bash | |
| - run: pnpm run integration:validate | |
| shell: bash | |
| - run: pnpm run e2e:generate | |
| shell: bash | |
| - run: pnpm run e2e:validate | |
| shell: bash | |
| - run: ./scripts/assert-clean-working-directory.sh | |
| shell: bash |