ci: Cache-Layout fuer app-builder-Artefakte korrigiert (gedoppelter Schluessel)

Aus artifactDownloader.go + binDownload.js verifiziert: Schluessel ist
<release>-<release>, Unterverzeichnis = Namensteil vor dem ersten
Bindestrich (nsis-resources daher unter nsis\). Job 431 traf winCodeSign
im Cache, scheiterte aber am nsis-Miss mit einfachem Namen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
This commit is contained in:
Thore Cimbal
2026-07-31 12:00:00 +00:00
co-authored by Claude Fable 5
parent a55adfdd65
commit b656eefdc7
+15 -11
View File
@@ -26,23 +26,27 @@ if (-not (Test-Path $zip)) {
} }
# --- 2. electron-builder-Werkzeuge -> ELECTRON_BUILDER_CACHE ----------------- # --- 2. electron-builder-Werkzeuge -> ELECTRON_BUILDER_CACHE -----------------
# Zielstruktur wie app-builder sie erwartet: <Cache>\<SubDir>\<Name>-<Version>\ # Zielstruktur laut app-builder-Quellcode (artifactDownloader.go) + electron-builder
# 26.9.1 (binDownload.js): der Cache-Schluessel ist "<release>-<dateiname-ohne-ext>",
# also GEDOPPELT (z.B. nsis-3.0.4.1-nsis-3.0.4.1), und liegt unter dem Teil des
# Namens VOR dem ersten Bindestrich als Unterverzeichnis - nsis-resources landet
# deshalb ebenfalls unter nsis\. Job 431 bewies den Miss mit einfachem Namen.
$sevenZa = Join-Path $PSScriptRoot '..\..\..\node_modules\7zip-bin\win\x64\7za.exe' $sevenZa = Join-Path $PSScriptRoot '..\..\..\node_modules\7zip-bin\win\x64\7za.exe'
function Get-EbArtifact([string]$Name, [string]$Version, [string]$SubDir) { function Get-EbArtifact([string]$Release, [string]$SubDir) {
$dest = Join-Path $env:ELECTRON_BUILDER_CACHE (Join-Path $SubDir "$Name-$Version") $dest = Join-Path $env:ELECTRON_BUILDER_CACHE (Join-Path $SubDir "$Release-$Release")
if (Test-Path $dest) { return } if (Test-Path $dest) { return }
$tmp = Join-Path $env:TEMP "$Name-$Version.7z" $tmp = Join-Path $env:TEMP "$Release.7z"
Get-Resumable "https://github.com/electron-userland/electron-builder-binaries/releases/download/$Name-$Version/$Name-$Version.7z" $tmp Get-Resumable "https://github.com/electron-userland/electron-builder-binaries/releases/download/$Release/$Release.7z" $tmp
New-Item -ItemType Directory -Force $dest | Out-Null New-Item -ItemType Directory -Force $dest | Out-Null
& $sevenZa x -y "-o$dest" $tmp | Out-Null & $sevenZa x -y "-o$dest" $tmp | Out-Null
if ($LASTEXITCODE -ne 0) { Remove-Item -Recurse -Force $dest; throw "Entpacken gescheitert: $tmp" } if ($LASTEXITCODE -ne 0) { Remove-Item -Recurse -Force $dest; throw "Entpacken gescheitert: $tmp" }
} }
# Versionen passend zu electron-builder 26.9.1 (winCodeSign aus dem Job-424-Trace; # Versionen passend zu electron-builder 26.9.1 (winCodeSign aus dem Job-424-Trace,
# die nsis-Versionen sind seit Jahren stabil). Bei einem kuenftigen Mismatch laedt # nsis/nsis-resources samt Checksummen aus nsisUtil.js). Bei einem kuenftigen
# app-builder die richtige Version selbst und der Fehler nennt sie im Trace. # Mismatch laedt app-builder selbst und der Fehler nennt die richtige Version.
Get-EbArtifact 'winCodeSign' '2.6.0' 'winCodeSign' Get-EbArtifact 'winCodeSign-2.6.0' 'winCodeSign'
Get-EbArtifact 'nsis' '3.0.4.1' 'nsis' Get-EbArtifact 'nsis-3.0.4.1' 'nsis'
Get-EbArtifact 'nsis-resources' '3.4.1' 'nsis' Get-EbArtifact 'nsis-resources-3.4.1' 'nsis'
Write-Output "prefetch ok: electron v$ev + winCodeSign/nsis in den Caches" Write-Output "prefetch ok: electron v$ev + winCodeSign/nsis in den Caches"