From d9b00f8fd7f719e24f08691434b194e59a627322 Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 11 Mar 2026 00:21:12 +0100 Subject: [PATCH] fix(release): regenerate latest.yml with correct SHA-512 hash --- scripts/release_gitea.mjs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/scripts/release_gitea.mjs b/scripts/release_gitea.mjs index be022bb..630d75b 100644 --- a/scripts/release_gitea.mjs +++ b/scripts/release_gitea.mjs @@ -1,5 +1,6 @@ #!/usr/bin/env node import { execSync } from 'child_process'; +import { createHash } from 'crypto'; import { readFileSync, writeFileSync, statSync, createReadStream, existsSync } from 'fs'; import { resolve, basename } from 'path'; @@ -154,6 +155,25 @@ async function main() { run(`git push ${remote.name} ${tag}`); } + // 6b. Regenerate latest.yml to ensure correct SHA-512 + { + const setupName = `${PRODUCT_NAME} Setup ${version}.exe`; + const setupPath = resolve(RELEASE_DIR, setupName); + if (existsSync(setupPath)) { + const sha = await new Promise((res, rej) => { + const h = createHash('sha512'); + const s = createReadStream(setupPath); + s.on('data', d => h.update(d)); + s.on('end', () => res(h.digest('base64'))); + s.on('error', rej); + }); + const size = statSync(setupPath).size; + const yml = `version: ${version}\nfiles:\n - url: ${setupName}\n sha512: ${sha}\n size: ${size}\npath: ${setupName}\nsha512: ${sha}\nreleaseDate: '${new Date().toISOString()}'\n`; + writeFileSync(resolve(RELEASE_DIR, 'latest.yml'), yml, 'utf-8'); + console.log('Regenerated latest.yml with correct SHA-512'); + } + } + // 7. Verify artifacts const expectedArtifacts = [ `${PRODUCT_NAME} Setup ${version}.exe`,