Updater 3.4 – Lifecycle Hardening #28
@@ -16,6 +16,14 @@ assert(ci.includes('needs: [quality, windows-release-contract]'), 'Das Paket ist
|
||||
assert(ci.includes('git diff --exit-code -- release-manifest.json'), 'Paketjob bestätigt kein reproduzierbares Root-Manifest.');
|
||||
assert(ci.includes('vendoo-release-package-v2'), 'Paketjob validiert das Provenienzschema v2 nicht.');
|
||||
assert(ci.includes('actions/upload-artifact@v4'), 'Das geprüfte Paket wird nicht als CI-Artefakt bereitgestellt.');
|
||||
assert(ci.includes('powershell-parser-diagnostics'), 'Windows-Parserfehler werden nicht als Diagnoseartefakt gesichert.');
|
||||
assert(ci.includes('tools/build-deterministic-zip.py'), 'Paketjob verwendet keinen deterministischen ZIP-Build.');
|
||||
assert(ci.includes('first_hash') && ci.includes('second_hash'), 'Paketjob weist die Byte-Reproduzierbarkeit des ZIPs nicht nach.');
|
||||
assert(!ci.includes('zip -qr'), 'Paketjob verwendet weiterhin den zeitstempelabhängigen Standard-ZIP-Build.');
|
||||
|
||||
const deterministicZip = read('tools/build-deterministic-zip.py');
|
||||
assert(deterministicZip.includes('FIXED_TIMESTAMP = (1980, 1, 1, 0, 0, 0)'), 'Deterministischer ZIP-Build besitzt keinen fixierten Zeitstempel.');
|
||||
assert(deterministicZip.includes('sorted(source.rglob'), 'Deterministischer ZIP-Build sortiert die Payload nicht.');
|
||||
|
||||
assert(sync.includes("'release/*-production-update-v*'"), 'Manifest-Sync ist nicht versionsneutral auf Releasebranches begrenzt.');
|
||||
assert(sync.includes('workflow_dispatch:'), 'Manifest-Sync kann nicht auf dem finalen Head registriert werden.');
|
||||
@@ -40,4 +48,4 @@ if (failures.length) {
|
||||
failures.forEach(failure => console.error(`- ${failure}`));
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('Updater-3.4-CI-Lifecycle-Gate erfolgreich: Manifest-Sync registriert den finalen Head und das Paket entsteht erst nach Linux-/Windows-Abnahme.');
|
||||
console.log('Updater-3.4-CI-Lifecycle-Gate erfolgreich: finaler Head, Windows-Diagnose und reproduzierbares Paket sind verbindlich abgesichert.');
|
||||
|
||||
Reference in New Issue
Block a user