feat(install-e2e): cover non-app update methods after a dmg install
A dmg user can also update from the terminal (hermes update) or by re-running the install one-liner; the dmg arm only routed the two app-button methods, leaving three declared cells as permanent TODOs. Port the POSIX driver's method blocks into the macos driver's update phase (hermes-update with the --yes probe, installer re-run with per-ref flag probing, the +desktop built-app assert) and open the workflow gate. The dmg bootstrap driver also learns to recover instead of waiting out its bound when a stage fails: the bootstrap parks on an error screen with a Retry button (seen live: HTTP 429 downloading install.sh under full-matrix runner load), so the driver watches the bootstrap log for real failure shapes, requires two consecutive error probes before retargeting the click at Retry's measured position, unlatches when the log goes healthy, and gives up with the true cause after three retries. Driver rule learned three times in this suite (lsof +D, git show and find piped to grep -q): under set -euo pipefail, never feed grep -q from a pipe... grep exits at first match, the producer takes SIGPIPE, and a TRUE condition reads as failure. Capture to a variable or test paths directly. Verified end to end: run 33506177130, macos slice 13/13 green.
This commit is contained in:
2
.github/workflows/install-e2e-macos-run.yml
vendored
2
.github/workflows/install-e2e-macos-run.yml
vendored
@@ -82,7 +82,7 @@ jobs:
|
||||
name: Hermes-Setup.dmg
|
||||
if: >-
|
||||
inputs.install-method == 'desktop-installer@latest' && inputs.tag-has-desktop
|
||||
&& contains(fromJSON('["open-app-update", "hermes-desktop-app-update"]'), inputs.update-method)
|
||||
&& contains(fromJSON('["open-app-update", "hermes-desktop-app-update", "hermes-update", "installer-script", "installer-script+desktop"]'), inputs.update-method)
|
||||
runs-on: macos-latest
|
||||
timeout-minutes: ${{ inputs.timeout-minutes }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user