mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-10-04 02:31:36 +00:00
feat: update Node.js version to 22 and adjust electron-rebuild dependency handling
This commit is contained in:
parent
030fe7d22d
commit
7ee45d6396
3 changed files with 39 additions and 4 deletions
27
.github/workflows/desktop-packaging.yml
vendored
27
.github/workflows/desktop-packaging.yml
vendored
|
|
@ -24,7 +24,7 @@ jobs:
|
|||
|
||||
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: 20
|
||||
node-version: 22
|
||||
cache: npm
|
||||
cache-dependency-path: gitnexus-desktop/package-lock.json
|
||||
|
||||
|
|
@ -78,7 +78,7 @@ jobs:
|
|||
|
||||
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: 20
|
||||
node-version: 22
|
||||
cache: npm
|
||||
cache-dependency-path: |
|
||||
gitnexus-shared/package-lock.json
|
||||
|
|
@ -112,6 +112,29 @@ jobs:
|
|||
env:
|
||||
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
|
||||
|
||||
- name: Inspect rebuilt native modules (Windows)
|
||||
if: matrix.os == 'windows-latest'
|
||||
shell: pwsh
|
||||
run: |
|
||||
$releaseDir = Get-ChildItem gitnexus-desktop/release -Directory | Sort-Object LastWriteTime -Descending | Select-Object -First 1
|
||||
|
||||
if (-not $releaseDir) {
|
||||
Write-Host "No release directory found."
|
||||
exit 0
|
||||
}
|
||||
|
||||
$runtimeNodeModules = Join-Path $releaseDir.FullName 'win-unpacked\resources\gitnexus\node_modules'
|
||||
Write-Host "Inspecting native modules under $runtimeNodeModules"
|
||||
|
||||
if (-not (Test-Path $runtimeNodeModules)) {
|
||||
Write-Host "Runtime node_modules directory not found."
|
||||
exit 0
|
||||
}
|
||||
|
||||
Get-ChildItem $runtimeNodeModules -Recurse -Filter '*.node' |
|
||||
Select-Object FullName, LastWriteTime |
|
||||
Format-Table -AutoSize
|
||||
|
||||
- name: Start Xvfb
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: |
|
||||
|
|
|
|||
|
|
@ -160,6 +160,7 @@ const gitnexusDesktopRuntimeDependencyNames = [
|
|||
'graphology-utils',
|
||||
'ignore',
|
||||
'js-yaml',
|
||||
'jsonc-parser',
|
||||
'lru-cache',
|
||||
'mnemonist',
|
||||
'pandemonium',
|
||||
|
|
|
|||
|
|
@ -28,8 +28,19 @@ const electronVersion =
|
|||
desktopPackageJson.devDependencies?.electron?.replace(/^[^\d]*/, '') ?? '41.2.1';
|
||||
const electronBuilderVersion =
|
||||
desktopPackageJson.devDependencies?.['electron-builder']?.replace(/^[^\d]*/, '') ?? '26.8.1';
|
||||
// electron-rebuild v4 requires Node 22+, but desktop packaging currently runs on Node 20.
|
||||
const electronRebuildVersion = '3.7.2';
|
||||
const [nodeMajorVersion = 0, nodeMinorVersion = 0] = process.versions.node
|
||||
.split('.')
|
||||
.map((segment) => Number.parseInt(segment, 10));
|
||||
const supportsElectronRebuildV4 =
|
||||
nodeMajorVersion > 22 || (nodeMajorVersion === 22 && nodeMinorVersion >= 12);
|
||||
// electron-rebuild v4 requires Node >= 22.12. Keep a v3 fallback for local Node 20 usage.
|
||||
const electronRebuildVersion = supportsElectronRebuildV4 ? '4.0.3' : '3.7.2';
|
||||
|
||||
if (!supportsElectronRebuildV4) {
|
||||
console.warn(
|
||||
`[build] Node ${process.versions.node} detected; using electron-rebuild@${electronRebuildVersion}. Node 22.12+ is recommended for Electron ${electronVersion}.`,
|
||||
);
|
||||
}
|
||||
const electronBuilderCliPath = path.join(packageRoot, 'node_modules', 'electron-builder', 'cli.js');
|
||||
const builderUtilRequire = createRequire(
|
||||
path.join(packageRoot, 'node_modules', 'builder-util', 'out', 'util.js'),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue