diff --git a/scripts/src/ci.ts b/scripts/src/ci.ts index 8f7c3506..3badd147 100644 --- a/scripts/src/ci.ts +++ b/scripts/src/ci.ts @@ -23,6 +23,7 @@ const tektonTriggersReleaseUrl = `https://infra.tekton.dev/tekton-releases/trigg const tektonTriggersInterceptorsUrl = `https://infra.tekton.dev/tekton-releases/triggers/previous/${tektonTriggersVersion}/interceptors.yaml`; const providerGatewayWsEgressProxyUrl = "http://127.0.0.1:18789"; const ciCodeQueueImage = "unidesk-code-queue:dev"; +const providerDispatchCompletionLagMs = 45_000; const ciRuntimeImages = [ "rancher/mirrored-pause:3.6", "rancher/mirrored-library-busybox:1.36.1", @@ -704,7 +705,8 @@ async function dispatchSsh(command: string, waitMs: number, remoteTimeoutMs: num raw: dispatchBody, }; } - const deadline = Date.now() + Math.max(waitMs, 1_000); + const effectiveWaitMs = Math.max(waitMs, Math.min(remoteTimeoutMs + providerDispatchCompletionLagMs, 120_000)); + const deadline = Date.now() + Math.max(effectiveWaitMs, 1_000); let latest: unknown = null; while (Date.now() < deadline) { latest = coreInternalFetch(`/api/tasks/${encodeURIComponent(taskId)}`, { maxResponseBytes: 3_000_000 }); @@ -732,7 +734,7 @@ async function dispatchSsh(command: string, waitMs: number, remoteTimeoutMs: num taskId, status: "timeout", stdout: "", - stderr: `host.ssh task ${taskId} did not finish within ${Math.max(waitMs, 1_000)}ms`, + stderr: `host.ssh task ${taskId} did not finish within ${Math.max(effectiveWaitMs, 1_000)}ms`, exitCode: null, raw: latest, };