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:
2
.github/workflows/install-e2e-macos-run.yml
vendored
2
.github/workflows/install-e2e-macos-run.yml
vendored
@@ -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
|
||||
|
||||
2
.github/workflows/install-e2e-run.yml
vendored
2
.github/workflows/install-e2e-run.yml
vendored
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = ""
|
||||
|
||||
Reference in New Issue
Block a user