From 4c63ea0d7645cb4805eed10192ad3c8ceeb0151e Mon Sep 17 00:00:00 2001 From: samirasidd Date: Thu, 22 Oct 2026 12:16:18 +0600 Subject: [PATCH] ci: restore workflow comments, keep only the new step --- .github/workflows/test.yml | 9 +++++++++ scripts/run-tests.mjs | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 09fe0e398..efa373b50 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,6 +19,12 @@ jobs: - name: Install Node uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: + # Pin to the version the app actually ships on (Dockerfile / + # Dockerfile.dev both use 24.18.1; .nvmrc pins the 24 major). + # A bare '24' floats to the latest 24.x; Node >= 24.19.0 added + # node::ObjectWrap cleanup hooks that crash better-sqlite3 on teardown + # ("Assertion failed: (env) != nullptr" in RemoveEnvironmentCleanupHook), + # which intermittently kills `npm run dev` in the step below. node-version: '24.18.1' - name: Copy config file @@ -60,6 +66,9 @@ jobs: echo "App is up" exit 0 fi + # Fail fast (and show why) if the process is gone. Read the PID + # safely: if it's missing/empty (e.g. nohup never started), treat + # that as "not running" instead of passing a bad arg to kill. pid="$(cat app.pid 2>/dev/null || true)" if [ -z "$pid" ] || ! kill -0 "$pid" 2>/dev/null; then echo "App process exited before becoming available. Output:" diff --git a/scripts/run-tests.mjs b/scripts/run-tests.mjs index f9c21f1cf..3fd867aeb 100644 --- a/scripts/run-tests.mjs +++ b/scripts/run-tests.mjs @@ -32,7 +32,7 @@ for (const f of files) { continue; } console.log(`\n== ${f}`); - const r = spawnSync("npx", ["tsx", f], { stdio: "inherit", shell: true }); + const r = spawnSync("npx", ["tsx", f], { stdio: "inherit", shell: process.platform === "win32" }); if (r.status !== 0) failed.push(f); } const ran = files.length - knownFailing.size;