Enhance Windows dev support (#13)
Makes local dev work on Windows: cross-env for the server dev port, pnpm --parallel to run server+web together (replacing the POSIX-only '&'), PowerShell setup docs, engines widened to Node >=20, and a Node 20 + 24 CI matrix. CI keeps a stable required 'Build & test' status via an aggregate gate job so the matrix rename doesn't drop the context the main ruleset requires. Co-authored-by: BadAtCaptchas <2359196+BadAtCaptchas@users.noreply.github.com> Co-authored-by: Jannis Braun <151788261+TheZwiss@users.noreply.github.com>
This commit is contained in:
co-authored by
Jannis Braun
parent
43cab41e60
commit
1e6c7c6042
@@ -22,9 +22,14 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
name: Build & test
|
||||
name: Build & test (Node ${{ matrix.node-version }})
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: [20, 24]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
@@ -33,15 +38,10 @@ jobs:
|
||||
uses: pnpm/action-setup@v5
|
||||
with:
|
||||
version: 10.34.3
|
||||
|
||||
# Node 20 is the project's supported runtime (package.json engines pins
|
||||
# >=20 <21, .nvmrc says 20). Running the matrix on 20 also means the fresh
|
||||
# install below pulls better-sqlite3's prebuilt binary for the correct ABI,
|
||||
# which is what makes the server suite runnable in CI.
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: 20
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: pnpm
|
||||
|
||||
# The desktop postinstall tries to rebuild the native uiohook-napi module.
|
||||
@@ -65,3 +65,23 @@ jobs:
|
||||
# Runs every package's `test` script (server, web, desktop) via vitest.
|
||||
- name: Test
|
||||
run: pnpm -r test
|
||||
|
||||
# Aggregate gate reporting a single, matrix-independent "Build & test" status.
|
||||
# Branch protection on main requires the "Build & test" context, but the matrix
|
||||
# job above reports per-version contexts ("Build & test (Node 20/24)"). This job
|
||||
# keeps the stable required context alive and fails unless every matrix leg
|
||||
# succeeded (if: always() so a matrix failure still reports a definitive result
|
||||
# instead of leaving the required check pending forever).
|
||||
build-and-test-required:
|
||||
name: Build & test
|
||||
if: always()
|
||||
needs: build-and-test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Verify matrix result
|
||||
run: |
|
||||
if [ "${{ needs.build-and-test.result }}" != "success" ]; then
|
||||
echo "Matrix build-and-test did not succeed: ${{ needs.build-and-test.result }}"
|
||||
exit 1
|
||||
fi
|
||||
echo "All matrix legs passed."
|
||||
|
||||
Reference in New Issue
Block a user