chore(deps-dev): bump the types group across 1 directory with 2 updates #1870
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] | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-and-test: | |
| name: build · test (${{ matrix.os }}, node ${{ matrix.node }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Cover every (OS × arch) combination we promise in the README | |
| # install matrix. macOS-14 is Apple Silicon (arm64); macOS-13 | |
| # is Intel (x64). windows-latest covers x64; windows-11-arm | |
| # covers Surface / Copilot+ PCs (the case that broke v0.33). | |
| # ubuntu-latest covers x64; ubuntu-24.04-arm covers ARM Linux | |
| # servers (Graviton, etc.). | |
| os: | |
| - ubuntu-latest | |
| - ubuntu-24.04-arm | |
| - windows-latest | |
| - windows-11-arm | |
| - macos-13 | |
| - macos-14 | |
| # Node 22 LTS and Node 24 (the brand-new release that broke | |
| # v0.33's better-sqlite3 prebuild). v0.34's node:sqlite | |
| # migration removes that fragility. | |
| node: ['22', '24'] | |
| # Skip combinations GitHub doesn't host runners for. | |
| exclude: | |
| - os: windows-11-arm | |
| node: '24' # windows-11-arm runner doesn't ship Node 24 yet — re-add when available | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 50 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: 'npm' | |
| - name: Configure git for tests | |
| run: | | |
| git config --global user.email "ci@mneme.dev" | |
| git config --global user.name "Mneme CI" | |
| git config --global init.defaultBranch main | |
| git config --global core.autocrlf false | |
| # v1.23.5: npm ci self-heal on EINTEGRITY drift. | |
| # v1.24.2: --ignore-scripts safety net for onnxruntime-node@1.22.0 | |
| # packaging bug (its install script needs adm-zip without declaring it). | |
| - name: Install (self-heal + ignore-scripts) | |
| shell: bash | |
| run: npm ci --ignore-scripts || (echo "::warning::lockfile integrity drift -- self-healing"; node scripts/heal-lockfile.mjs && npm ci --ignore-scripts) | |
| - name: Build | |
| run: npm run build | |
| - name: Lint (typecheck) | |
| run: npm run lint | |
| - name: Unit + integration tests | |
| run: npm test | |
| - name: Eval harness (regression gate) | |
| run: npm run eval -- --variant baseline --quiet | |
| eval-matrix: | |
| name: eval · all variants | |
| runs-on: ubuntu-latest | |
| needs: build-and-test | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 50 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Configure git | |
| run: | | |
| git config --global user.email "ci@mneme.dev" | |
| git config --global user.name "Mneme CI" | |
| git config --global core.autocrlf false | |
| # v1.23.5: npm ci self-heal on EINTEGRITY drift. | |
| # v1.24.2: --ignore-scripts safety net for onnxruntime-node@1.22.0 | |
| # packaging bug (its install script needs adm-zip without declaring it). | |
| - name: Install (self-heal + ignore-scripts) | |
| shell: bash | |
| run: npm ci --ignore-scripts || (echo "::warning::lockfile integrity drift -- self-healing"; node scripts/heal-lockfile.mjs && npm ci --ignore-scripts) | |
| - run: npm run build | |
| - name: Run full eval | |
| run: npm run eval -- --out tests/.tmp/eval-report.json | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: eval-report | |
| path: tests/.tmp/eval-report.json | |
| retention-days: 30 | |
| bench: | |
| name: bench · perf | |
| runs-on: ubuntu-latest | |
| needs: build-and-test | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Configure git | |
| run: | | |
| git config --global user.email "ci@mneme.dev" | |
| git config --global user.name "Mneme CI" | |
| git config --global core.autocrlf false | |
| # v1.23.5: npm ci self-heal on EINTEGRITY drift. | |
| # v1.24.2: --ignore-scripts safety net for onnxruntime-node@1.22.0 | |
| # packaging bug (its install script needs adm-zip without declaring it). | |
| - name: Install (self-heal + ignore-scripts) | |
| shell: bash | |
| run: npm ci --ignore-scripts || (echo "::warning::lockfile integrity drift -- self-healing"; node scripts/heal-lockfile.mjs && npm ci --ignore-scripts) | |
| - run: npm run build | |
| - name: Run benchmark (small + medium) | |
| run: npm run bench -- --only small --out tests/.tmp/bench-small.json | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: bench-report | |
| path: tests/.tmp/*.json | |
| retention-days: 30 |