Skip to content

Migrate to pnpm

Migrate to pnpm #423

Workflow file for this run

name: CI
on:
push:
branches:
- master
pull_request: {}
jobs:
lint:
name: Lint
runs-on: 'ubuntu-latest'
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm run lint
test:
name: Test (Node)
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
operating-system: ['ubuntu-latest', 'windows-latest']
# https://nodejs.org/en/about/releases/
# Node 20 is supported at runtime (see "engines" in package.json) but is
# not exercised in CI because pnpm >=11 requires Node >=22.13.
node-version: ['22', '24']
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: true
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test
run: pnpm run test
- name: Test (Publish)
run: pnpm exec vitest run --project publish
- name: Test (Integration)
if: matrix.operating-system == 'ubuntu-latest'
run: pnpm run test:integration
browser:
name: Test (Browser)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: true
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Playwright
run: |
pnpm exec playwright install-deps
pnpm exec playwright install
- name: Build
run: pnpm run build
- name: Test
run: |
pnpm run test:browser-smoke
pnpm run test:browser