30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { mkdir } from "node:fs/promises";
|
|
|
|
import { writeValidatedJsonArtifact } from "./lib/validated-json-artifact.ts";
|
|
import { localEvidenceAssessmentArtifactSchema } from "./contracts/release-artifacts.ts";
|
|
import { createLocalEvidenceAssessment } from "./lib/local-release-evidence.ts";
|
|
import {
|
|
createReleaseCandidateManifest,
|
|
LOCAL_EVIDENCE_ASSESSMENT_PATH,
|
|
RELEASE_CANDIDATE_MANIFEST_PATH,
|
|
releaseCandidateManifestSchema,
|
|
} from "./lib/release-candidate.ts";
|
|
|
|
const assessment = await createLocalEvidenceAssessment();
|
|
await mkdir("artifacts/security", { recursive: true });
|
|
await writeValidatedJsonArtifact({
|
|
path: LOCAL_EVIDENCE_ASSESSMENT_PATH,
|
|
schema: localEvidenceAssessmentArtifactSchema,
|
|
value: assessment,
|
|
});
|
|
const manifest = await createReleaseCandidateManifest();
|
|
await mkdir("artifacts/release", { recursive: true });
|
|
await writeValidatedJsonArtifact({
|
|
path: RELEASE_CANDIDATE_MANIFEST_PATH,
|
|
schema: releaseCandidateManifestSchema,
|
|
value: manifest,
|
|
});
|
|
process.stdout.write(
|
|
`Immutable release candidate: ${manifest.distSha256} (${manifest.files.length} files)\n`,
|
|
);
|