diff --git a/scripts/src/hwlab-node-web-sentinel-cicd.ts b/scripts/src/hwlab-node-web-sentinel-cicd.ts index 7a9906a4..cb27095d 100644 --- a/scripts/src/hwlab-node-web-sentinel-cicd.ts +++ b/scripts/src/hwlab-node-web-sentinel-cicd.ts @@ -517,6 +517,7 @@ function probeImageRegistry(state: SentinelCicdState, timeoutSeconds: number): R } function runSentinelImageBuildConfirmed(state: SentinelCicdState, options: Extract): RenderedCliResult { + const startedAt = Date.now(); const command = "web-probe sentinel image build"; const sourceMirrorSync = runSentinelSourceMirrorSyncJob(state, options.timeoutSeconds); const publish = sourceMirrorSync.ok === true @@ -525,6 +526,7 @@ function runSentinelImageBuildConfirmed(state: SentinelCicdState, options: Extra const registry = probeImageRegistry(state, options.timeoutSeconds); const registryReady = record(registry.probe).present === true; const ok = state.configReady && state.sourceHead.ok && sourceMirrorSync.ok === true && publish.ok === true && registryReady; + const elapsedMs = Date.now() - startedAt; const result = { ok, command, @@ -538,7 +540,9 @@ function runSentinelImageBuildConfirmed(state: SentinelCicdState, options: Extra registry, sourceMirrorSync, publish, + elapsedMs, warnings: [ + ...sentinelElapsedWarnings(elapsedMs), ...sentinelElapsedWarnings(record(sourceMirrorSync).elapsedMs), ...sentinelElapsedWarnings(record(publish).elapsedMs), ], @@ -559,6 +563,7 @@ function runSentinelImageBuildConfirmed(state: SentinelCicdState, options: Extra } function runSentinelControlPlaneConfirmed(state: SentinelCicdState, options: Extract): RenderedCliResult { + const startedAt = Date.now(); const command = `web-probe sentinel control-plane ${options.action}`; const applyOnly = options.action === "apply"; const sourceMirrorSync = applyOnly ? null : runSentinelSourceMirrorSyncJob(state, options.timeoutSeconds); @@ -595,6 +600,7 @@ function runSentinelControlPlaneConfirmed(state: SentinelCicdState, options: Ext && record(argoApply).ok === true && observedReady && targetValidationOk; + const elapsedMs = Date.now() - startedAt; const blocker = ok ? null : { code: targetValidationOk ? record(sourceMirrorSync).ok === false ? "sentinel-source-mirror-sync-failed" : "sentinel-control-plane-not-ready" @@ -643,7 +649,9 @@ function runSentinelControlPlaneConfirmed(state: SentinelCicdState, options: Ext argoApply, observed, targetValidation, + elapsedMs, warnings: Array.from(new Set([ + ...sentinelElapsedWarnings(elapsedMs), ...sentinelElapsedWarnings(record(sourceMirrorSync).elapsedMs), ...sentinelElapsedWarnings(record(publish).elapsedMs), ...sentinelElapsedWarnings(record(flush).result === undefined ? null : record(record(flush).result).durationMs),