Fix updater SHA512 mismatch by patching latest.yml filenames and adding integrity retry
Build and Release / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
- Patch latest.yml during release to use actual filenames (spaces) instead of electron-builder's dashed names - Add download size validation before SHA512 check to catch incomplete downloads - Retry download on integrity mismatch (up to 3 passes) with API refresh - Re-resolve digest from latest.yml on each retry pass Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
8b153bdabe
commit
8f186ad894
@@ -148,6 +148,18 @@ function updatePackageVersion(rootDir, version) {
|
||||
fs.writeFileSync(packagePath, `${JSON.stringify(packageJson, null, 2)}\n`, "utf8");
|
||||
}
|
||||
|
||||
function patchLatestYml(releaseDir, version) {
|
||||
const ymlPath = path.join(releaseDir, "latest.yml");
|
||||
let content = fs.readFileSync(ymlPath, "utf8");
|
||||
const setupName = `Real-Debrid-Downloader Setup ${version}.exe`;
|
||||
const dashedName = `Real-Debrid-Downloader-Setup-${version}.exe`;
|
||||
if (content.includes(dashedName)) {
|
||||
content = content.split(dashedName).join(setupName);
|
||||
fs.writeFileSync(ymlPath, content, "utf8");
|
||||
process.stdout.write(`Patched latest.yml: replaced "${dashedName}" with "${setupName}"\n`);
|
||||
}
|
||||
}
|
||||
|
||||
function ensureAssetsExist(rootDir, version) {
|
||||
const releaseDir = path.join(rootDir, "release");
|
||||
const files = [
|
||||
@@ -162,6 +174,7 @@ function ensureAssetsExist(rootDir, version) {
|
||||
throw new Error(`Missing release artifact: ${fullPath}`);
|
||||
}
|
||||
}
|
||||
patchLatestYml(releaseDir, version);
|
||||
return { releaseDir, files };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user