fix(ci): ensure Linux electron binary, pass electronDist per-platform
Build and Release / build-and-release (push) Failing after 4m8s

electron-nightly may not auto-download the Linux binary on CI.
Add explicit step to trigger download if missing. Pass electronDist
as CLI override per-platform (dist-win for Windows, dist for Linux)
instead of in config. Write path.txt on all platforms like KPC.
This commit is contained in:
2026-04-03 17:45:09 -07:00
parent f82061a0ee
commit 11b585d409
3 changed files with 15 additions and 15 deletions
+13 -9
View File
@@ -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'
-1
View File
@@ -1,6 +1,5 @@
appId: com.krunkercivilian.client
productName: Krunker Civilian Client
electronDist: node_modules/electron/dist
directories:
output: out
buildResources: build
+2 -5
View File
@@ -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)) {