mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-09-22 05:16:22 -07:00
- Bump electron-builder to 26.16.1 so macOS signing passes the temp keychain password to set-key-partition-list (upstream #10066), which the macOS 26 runner image now enforces - Stat asar entries with their native path in the package audit; splitting on path.sep made every nested file look missing on Windows - Run the package smoke with --no-sandbox on Linux runners without a setuid chrome-sandbox - Load the packaged stats dashboard over loopback HTTP in the smoke, matching how the app serves it since #263, and ignore Chromium's cache-only font probe
30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
import fs from 'node:fs';
|
|
import os from 'node:os';
|
|
import path from 'node:path';
|
|
import { spawnSync } from 'node:child_process';
|
|
import { createRequire } from 'node:module';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const resources = process.argv[2];
|
|
if (!resources) throw new Error('Usage: bun run test:package <resources-directory>');
|
|
const require = createRequire(import.meta.url);
|
|
const profile = fs.mkdtempSync(path.join(os.tmpdir(), 'subminer-package-smoke-'));
|
|
const env = { ...process.env, SUBMINER_PACKAGE_SMOKE_DATA: profile };
|
|
delete env.ELECTRON_RUN_AS_NODE;
|
|
try {
|
|
const result = spawnSync(
|
|
require('electron'),
|
|
[
|
|
fileURLToPath(new URL('./smoke-package.cjs', import.meta.url)),
|
|
path.resolve(resources),
|
|
// CI runners lack a setuid chrome-sandbox; this harness never loads remote content.
|
|
...(process.platform === 'linux' ? ['--no-sandbox'] : []),
|
|
],
|
|
{ env, stdio: 'inherit', timeout: 75_000 },
|
|
);
|
|
if (result.error) throw result.error;
|
|
process.exitCode = result.status ?? 1;
|
|
} finally {
|
|
fs.rmSync(profile, { recursive: true, force: true, maxRetries: 3 });
|
|
}
|