diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 712b9c5..3404327 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -56,18 +56,22 @@ jobs: if: steps.version-check.outputs.SKIP == 'false' run: npm ci --legacy-peer-deps + - name: Ensure Electron Linux binary + if: steps.version-check.outputs.SKIP == 'false' + run: | + if [ ! -f node_modules/electron/dist/electron ]; then + echo "Electron Linux binary not found in dist/, triggering download..." + node node_modules/electron/install.js + fi + echo "=== Electron binaries ===" + echo "dist/electron: $(ls -lh node_modules/electron/dist/electron 2>/dev/null || echo MISSING)" + echo "dist-win/electron.exe: $(ls -lh node_modules/electron/dist-win/electron.exe 2>/dev/null || echo MISSING)" + echo "path.txt: $(cat node_modules/electron/path.txt 2>/dev/null || echo MISSING)" + - name: Build source if: steps.version-check.outputs.SKIP == 'false' run: npm run build - - name: Verify Electron binaries - if: steps.version-check.outputs.SKIP == 'false' - run: | - echo "=== Electron dist (stock, for Linux build) ===" - ls node_modules/electron/dist/electron 2>/dev/null && echo "OK" || echo "MISSING" - echo "=== Electron dist-win (patched, for Windows build) ===" - ls node_modules/electron/dist-win/electron.exe 2>/dev/null && echo "OK" || echo "MISSING" - - name: Build Windows distributables if: steps.version-check.outputs.SKIP == 'false' env: @@ -76,7 +80,7 @@ jobs: - name: Build Linux distributables if: steps.version-check.outputs.SKIP == 'false' - run: npx electron-builder --linux --publish never + run: npx electron-builder --linux -c.electronDist=node_modules/electron/dist --publish never - name: Report build sizes if: steps.version-check.outputs.SKIP == 'false' diff --git a/electron-builder.yml b/electron-builder.yml index a1ee34a..9f71f52 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -1,6 +1,5 @@ appId: com.krunkercivilian.client productName: Krunker Civilian Client -electronDist: node_modules/electron/dist directories: output: out buildResources: build diff --git a/scripts/download-electron.js b/scripts/download-electron.js index 68d9936..87cb720 100644 --- a/scripts/download-electron.js +++ b/scripts/download-electron.js @@ -151,11 +151,8 @@ async function main() { // Write path.txt so the electron package's lazy downloader (index.js) // considers the binary already installed and doesn't re-download stock. - // On non-Windows (CI cross-compilation), skip this so electron-nightly still - // downloads the native Linux binary into dist/ for the Linux build target. - if (IS_WIN) { - fs.writeFileSync(path.join(ELECTRON_DIST, '..', 'path.txt'), 'electron.exe'); - } + const platformExe = IS_WIN ? 'electron.exe' : 'electron'; + fs.writeFileSync(path.join(ELECTRON_DIST, '..', 'path.txt'), platformExe); // Write marker and verify if (fs.existsSync(VERSION_FILE)) {