cicd recover follower total timing from native state
This commit is contained in:
+20
-2
@@ -2086,10 +2086,11 @@ function buildFollowerTimings(
|
||||
storedTimings?: Record<string, unknown> | null,
|
||||
phase?: BranchFollowerPhase,
|
||||
): FollowerState["timings"] {
|
||||
const total = totalTimingFromCommand(triggerCommand, phase) ?? totalTimingFromStored(storedTimings, phase);
|
||||
const nativePayload = asOptionalRecord(live.payload);
|
||||
const total = totalTimingFromCommand(triggerCommand, phase) ?? totalTimingFromStored(storedTimings, phase) ?? totalTimingFromLivePayload(nativePayload, phase);
|
||||
const stages = dedupeTimingStages([
|
||||
...stageTimingsFromCommand(triggerCommand),
|
||||
...stageTimingsFromNativePayload(asOptionalRecord(live.payload)),
|
||||
...stageTimingsFromNativePayload(nativePayload),
|
||||
]).slice(0, 24);
|
||||
return {
|
||||
budgetSeconds: follower.budgets.endToEndSeconds,
|
||||
@@ -2162,6 +2163,23 @@ function totalTimingFromStored(storedTimings: Record<string, unknown> | null | u
|
||||
};
|
||||
}
|
||||
|
||||
function totalTimingFromLivePayload(payload: Record<string, unknown> | null, phase?: BranchFollowerPhase): { seconds: number; status: string; source: string; startedAt: string | null; finishedAt: string | null } | null {
|
||||
if (payload === null) return null;
|
||||
const tekton = asOptionalRecord(payload.tekton);
|
||||
const startedAt = stringOrNull(tekton?.startTime);
|
||||
if (startedAt === null) return null;
|
||||
const finishedAt = phase !== undefined && terminalPhase(phase) ? new Date().toISOString() : null;
|
||||
const seconds = totalSecondsFromRange(startedAt, finishedAt);
|
||||
if (seconds === null) return null;
|
||||
return {
|
||||
seconds,
|
||||
status: phase === undefined ? "native-observed" : phase.toLowerCase(),
|
||||
source: "tekton-pipelinerun-start",
|
||||
startedAt,
|
||||
finishedAt,
|
||||
};
|
||||
}
|
||||
|
||||
function totalSecondsFromRange(startedAt: string | null, finishedAt: string | null): number | null {
|
||||
const startedMs = timestampMs(startedAt);
|
||||
if (startedMs === null) return null;
|
||||
|
||||
Reference in New Issue
Block a user