feat(install-e2e): cover Setup.exe re-run as a windows update method
The last declared TODO: a user whose install is stale re-downloads Hermes-Setup.exe and clicks Install over the existing install, the GUI twin of re-running the one-liner. Windows shows the full installer UI on a re-run (the already-installed fast path is macOS-only), so the existing AHK install drive applies unchanged; install.ps1's repository stage fetches the existing checkout forward to what main serves, now HEAD. Invoke-PhaseInstallGui gains an update mode instead of a parallel copy: the phase label, proof dir, and expected-sha assertion become parameters, and the update-is-available assert stays install-only. The bootstrap log rotates before the re-run so the AHK's completion fallback cannot match the install phase's old completion line.
This commit is contained in:
@@ -92,12 +92,11 @@ jobs:
|
||||
# Update button to click, no -IncludeDesktop to pass);
|
||||
# * open-app-update needs an OS entry point, which only the
|
||||
# desktop-bearing installs create.
|
||||
# desktop-installer@latest as an UPDATE method is the one declared TODO.
|
||||
if: >-
|
||||
(inputs.install-method == 'installer-script'
|
||||
|| (contains(fromJSON('["installer-script+desktop", "desktop-installer@latest"]'), inputs.install-method) && inputs.tag-has-desktop))
|
||||
&& (contains(fromJSON('["hermes-update", "installer-script"]'), inputs.update-method)
|
||||
|| (contains(fromJSON('["installer-script+desktop", "hermes-desktop-app-update"]'), inputs.update-method) && inputs.tag-has-desktop)
|
||||
|| (contains(fromJSON('["installer-script+desktop", "hermes-desktop-app-update", "desktop-installer@latest"]'), inputs.update-method) && inputs.tag-has-desktop)
|
||||
|| (inputs.update-method == 'open-app-update' && inputs.tag-has-desktop
|
||||
&& contains(fromJSON('["desktop-installer@latest", "installer-script+desktop"]'), inputs.install-method)))
|
||||
runs-on: windows-latest
|
||||
|
||||
Reference in New Issue
Block a user