perf: reuse selfmedia build environment

This commit is contained in:
Codex
2026-07-14 12:55:30 +02:00
parent f17c5e795d
commit 80379a2012
6 changed files with 118 additions and 7 deletions
+10 -3
View File
@@ -505,6 +505,9 @@ function digestOf(item) {
function extractPacArtifactEvidence(recordsInput, logText) {
const records = Array.isArray(recordsInput) ? recordsInput.map(record) : [];
const envReuseRecord = [...records].reverse().find((item) => item.phase === "env-reuse") || null;
const imageBuildRecord = [...records].reverse().find((item) => item.phase === "image-build" || item.phase === "image-build-complete") || null;
const stageTimings = Object.assign({}, ...records.map((item) => record(item.stageTimings)));
const sourceObservation = extractPacSourceObservation(records);
const catalog = [...records].reverse().find((item) => item.status === "published"
&& Array.isArray(item.services)
@@ -562,10 +565,13 @@ function extractPacArtifactEvidence(recordsInput, logText) {
}
if (image !== null) {
const env = record(image.envReuse);
const reuseEnv = record(envReuseRecord?.envReuse);
return {
imageStatus: stringOrNull(image.imageStatus) || stringOrNull(image.status) || (stringOrNull(image.digestRef) !== null ? "built" : null),
envIdentity: stringOrNull(image.envIdentity),
envReuse: stringOrNull(env.dependencyReuse) || stringOrNull(env.mode) || stringOrNull(image.envReuseStatus),
imageStatus: stringOrNull(image.imageStatus) || stringOrNull(image.status)
|| (imageBuildRecord !== null || stringOrNull(image.digestRef) !== null ? "built" : null),
envIdentity: stringOrNull(image.envIdentity) || stringOrNull(envReuseRecord?.envIdentity),
envReuse: stringOrNull(env.dependencyReuse) || stringOrNull(env.status) || stringOrNull(image.envReuseStatus)
|| stringOrNull(reuseEnv.dependencyReuse) || stringOrNull(reuseEnv.status) || stringOrNull(envReuseRecord?.envReuseStatus),
nodeDepsReuse: null,
buildCache: null,
digest: digestOf(image) || (digests.length === 1 ? digests[0] : null),
@@ -576,6 +582,7 @@ function extractPacArtifactEvidence(recordsInput, logText) {
baselineSourceCommit: stringOrNull(image.baselineSourceCommit),
action: stringOrNull(image.action),
reason: stringOrNull(image.reason),
stageTimings,
sourceObservation,
valuesPrinted: false,
};