From 626ad25edcd7c400426a30caee5d5be3646fb864 Mon Sep 17 00:00:00 2001 From: Lex Christopherson Date: Sat, 21 Mar 2026 13:30:23 -0600 Subject: [PATCH] =?UTF-8?q?fix:=20skip=20web=20build=20on=20Windows=20?= =?UTF-8?q?=E2=80=94=20Next.js=20webpack=20hits=20EPERM=20on=20system=20di?= =?UTF-8?q?rs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Windows CI runner's Application Data directory triggers EPERM when webpack scans it. The web build is a Linux/macOS deployment target and doesn't need to run on Windows. Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/build-web-if-stale.cjs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/build-web-if-stale.cjs b/scripts/build-web-if-stale.cjs index d7d241d03..bd9e828d4 100644 --- a/scripts/build-web-if-stale.cjs +++ b/scripts/build-web-if-stale.cjs @@ -17,6 +17,12 @@ const { execSync } = require('node:child_process') const { existsSync, readdirSync, statSync } = require('node:fs') const { join, resolve } = require('node:path') +// Skip on Windows — Next.js webpack build hits EPERM scanning system dirs +if (process.platform === 'win32') { + console.log('[gsd] Web build skipped on Windows.') + process.exit(0) +} + const root = resolve(__dirname, '..') const webRoot = join(root, 'web') // Also watch src/ because api routes import directly from src/web/* and src/resources/*