Skip to content

fix(ci): switch the release e2e back to the web window after the native first launch - #816

Merged
omartelo merged 3 commits into
mainfrom
fix/release-e2e-native-first
Oct 17, 2026
Merged

omartelo merged 3 commits into
mainfrom
fix/release-e2e-native-first

Conversation

@omartelo

@omartelo omartelo commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

The v0.70.0 release run failed on both macOS jobs and on Windows: since #809 the first launch of a release opens the native window, and the end-to-end checks expected the web one on it.

  • mac-e2e.sh: asserts the first launch opens the native window, waits for it to attach, then switches back the way Settings does it (store.SetSetting window.kind=web, system.OpenWindow web), checks the native window closed and goes on with the web checks as before.

  • Windows step in release.yml: the same switch. On the runner the native window exits before it attaches and lich falls back to the web one, so it waits for the attach or the exit instead of asserting the native window opened.

  • internal/system: AttachNative logs native window attached, the counterpart of the existing native window exited. The first validation run showed why the checks need it: on the slower Intel runner the switch came before the native window attached, lich had no window of it to close, and both stayed open.

  • internal/terminal tests: the validation run's linux job failed on text file busy in TestSessionAccountReadsWhatTheWrapperExecsInto, a flake from test(terminal): run the tests that touch no process-wide state in parallel #813. A test that writes a script and execs it hits ETXTBSY when a parallel test forks while the script is still open for writing (os: StartProcess ETXTBSY race on Unix systems golang/go#22315); TestListenRetriesUntilPortFreesWithoutWaitMarker can lose its freed port to a parallel 127.0.0.1:0. Those 32 tests run serially again; nothing they assert changed. go test -count=N ./internal/terminal/: 1 failure in 15 runs before, 0 in 25 after.

Validated with workflow_dispatch on this branch (the release job is skipped off a tag): run 39069991006 has the three end-to-end jobs green; its linux job failed on the flake above. After merge, v0.70.0 is re-tagged on the merge commit; nothing was published from the first tag.

…ve first launch

The first launch of a release opens the native window since #809, and the
macOS and Windows end-to-end checks expected the web one on it.
… back

On the slower Intel runner the switch came before the native window had
attached, so lich had no window of it to close and both stayed open. lich now
logs the attach, and the macOS and Windows checks wait for it.
…d a freed port, serially

#813 ran them in parallel. A test that writes a script and execs it fails
with ETXTBSY when another test forks while the script is still open for
writing (golang/go#22315), and the port-retry test can lose its freed port
to a parallel test's 127.0.0.1:0. Measured on the package: 1 failure in 15
runs before, 0 in 25 after.
@omartelo
omartelo merged commit efb6779 into main Oct 17, 2026
7 checks passed
@omartelo
omartelo deleted the fix/release-e2e-native-first branch October 17, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant