Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .github/workflows/build-desktop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,14 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "20"
# 22, not 20. jsdom 30 (via vitest) declares
# engines ^22.22.2 || ^24.15.0 || >=26.0.0, and on
# 20 it fails at import with
# "webidl.util.markAsUncloneable is not a
# function" rather than anything that names a Node
# version. The runners also warn that 20 is
# deprecated and force actions onto 24.
node-version: "22"

- name: Set up pnpm
uses: pnpm/action-setup@v4
Expand Down
12 changes: 11 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,14 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "20"
# 22, not 20. jsdom 30 (via vitest) declares
# engines ^22.22.2 || ^24.15.0 || >=26.0.0, and on
# 20 it fails at import with
# "webidl.util.markAsUncloneable is not a
# function" rather than anything that names a Node
# version. The runners also warn that 20 is
# deprecated and force actions onto 24.
node-version: "22"

- name: Set up pnpm
uses: pnpm/action-setup@v4
Expand All @@ -48,3 +55,6 @@ jobs:

- name: Type check and build
run: cd frontend && pnpm build

- name: Run tests
run: cd frontend && pnpm test
3 changes: 3 additions & 0 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
"name": "kaisho-frontend",
"private": true,
"version": "2.9.1",
"engines": {
"node": ">=22.22.2"
},
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
28 changes: 23 additions & 5 deletions frontend/pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
# esbuild ships a prebuilt binary and needs its install
# script to put it in place; vitest will not start without
# it. Approved explicitly because pnpm blocks build scripts
# by default, which is the right default.
# Both keys are load-bearing, for different pnpm versions.
#
# packages: pnpm 9, which CI pins, treats any
# pnpm-workspace.yaml as a workspace declaration and
# refuses to install without this field:
#
# ERROR packages field missing or empty
#
# "." is this package itself, so the install layout is
# unchanged.
#
# ignoredBuiltDependencies: pnpm 10 and later refuse to
# finish an install that skipped a package's build script
# (ERR_PNPM_IGNORED_BUILDS) unless told the skip is
# deliberate. esbuild's script places a prebuilt binary
# that neither the build nor the tests need: verified with
# a clean install that skipped it, followed by pnpm build
# and pnpm test, both green.
packages:
- .
allowBuilds:
esbuild: true
esbuild: set this to true or false
ignoredBuiltDependencies:
- esbuild
Loading