perf(install-e2e): 60-minute job caps; 35-minute updater wait

The slowest green leg ever recorded is 29 minutes; every cap hit in the
suite's history was a hang, never work. Caps were linux 75 / macos 120 /
windows 240, so a wedged leg burned up to 4 hours of runner time to
report what its log showed in the first minutes. 60 minutes covers the
slowest leg plus cold-cache variance, and every driver-internal bound
(dmg install 45m, AHK 50m, updater wait) still fires before the job cap
in any single-hang scenario, keeping failure diagnostics specific.

The detached-updater wait drops 90m -> 35m on the same evidence: a
working updater finishes far inside 35m; a wedged one never finishes at
any bound, and the longer wait only delayed the report by an hour.
This commit is contained in:
yoniebans
2026-09-01 17:34:13 +02:00
parent bf75c52ba2
commit 2f25c07a2c
4 changed files with 12 additions and 11 deletions

View File

@@ -51,7 +51,7 @@ on:
description: 'Job timeout. App-update legs do a full Electron build.'
required: false
type: number
default: 120
default: 60
permissions:
contents: read

View File

@@ -68,7 +68,7 @@ on:
description: 'Job timeout. A cold run installs real toolchains twice, and app-update legs add a full Electron build + launch.'
required: false
type: number
default: 75
default: 60
permissions:
contents: read

View File

@@ -76,7 +76,7 @@ on:
description: 'Job timeout. The install leg does real toolchain work and the update leg a full Electron rebuild.'
required: false
type: number
default: 240
default: 60
permissions:
contents: read

View File

@@ -748,16 +748,17 @@ function Invoke-GuiUpdateDesktopRoute([string]$TargetSha) {
# asserts below are the hard gate either way; the JSON is asserted
# only when the script path produced it.
#
# This can take a LONG time: the website release we installed is weeks
# of main behind HEAD, so the update pulls a large diff AND does a
# full Electron desktop rebuild (vite + electron-builder) plus a uv
# sync. The desktop-build output goes to logs/update.log (not the
# streamed handoff log), so we tail update.log here to show progress
# instead of going silent for tens of minutes.
Write-Host " waiting for the detached updater to finish (up to 90 min; large old->new rebuild) ..."
# The update pulls a large diff AND does a full Electron desktop
# rebuild (vite + electron-builder) plus a uv sync; a WORKING updater
# finishes well under 35 minutes on these runners (slowest observed
# leg anywhere in the matrix: 29m end to end). A wedged updater never
# finishes at any bound, so a longer wait only delays the report.
# The desktop-build output goes to logs/update.log (not the streamed
# handoff log), so we tail update.log here to show progress.
Write-Host " waiting for the detached updater to finish (up to 35 min) ..."
$updateLog = Join-Path $HermesHome "logs\update.log"
$updateLogPos = 0
$deadline = (Get-Date).AddMinutes(90)
$deadline = (Get-Date).AddMinutes(35)
while ((Get-Date) -lt $deadline) {
if (Test-Path -LiteralPath $resultPath) { break }
$head = ""