fix(release): stream large migration checksums from git
All checks were successful
Build and Release FEDEO / verify (push) Successful in 25s
Build and Release FEDEO / build-and-release (push) Successful in 5m50s

This commit is contained in:
2026-09-23 15:37:19 +02:00
parent f6996c1d7b
commit 74c0cf40b3
4 changed files with 125 additions and 10 deletions

View File

@@ -58,6 +58,26 @@ test('failed build never creates a draft or changes release channels', async ()
assert.deepEqual(f.events, []);
});
test('asynchronous manifest generation finishes before creating the release draft', async () => {
const f = fixture();
f.dependencies.manifestFactory = async () => {
await new Promise(resolve => setImmediate(resolve));
f.events.push('manifest');
return f.manifest;
};
await publishRelease(f.dependencies);
assert.deepEqual(f.events.slice(0, 3), ['build', 'manifest', 'draft']);
assert.equal(f.getRelease().draft, false);
});
test('failed migration hashing never creates a draft or promotes images', async () => {
const f = fixture();
f.dependencies.manifestFactory = async () => { throw new Error('migration hashing failed'); };
await assert.rejects(publishRelease(f.dependencies), /migration hashing failed/);
assert.deepEqual(f.events, ['build']);
assert.equal(f.getRelease(), null);
});
test('retry a draft uses saved digests and original notes without rebuilding', async () => {
const f = fixture();
f.dependencies.promote = async () => { throw new Error('registry interrupted'); };