ci: Wails GUI build smoke (darwin/universal) - #5
Merged
Conversation
Closes the long-standing 'first-time install actually produces a runnable binary?' question. CI now exercises the same command path a Mac user would: install Wails CLI, run wails build with the universal target, verify the .app bundle was produced and the embedded executable is present. Job: wails-build (macos-latest) go install wails@v2.11.0 wails doctor (info-only) wails build -platform darwin/universal -clean test the .app bundle structure upload the .app as a 14-day artifact for ad-hoc smoke testing Estimated runtime ~4-6 min on macos-latest. Only runs once per CI cycle (no matrix). Worth the time — until now the Wails build was purely theoretical from the 9975WX side; CI now proves it works on a clean macOS runner with no manual setup. ci-all-green aggregator extended to require wails-build along with the existing lint/python/go-and-frontend gates. Branch protection ruleset (now active on main) only needs the single ci-all-green check name; nothing to update there. Artifact upload uses retention-days: 14 — long enough for ad-hoc download to test on a real Mac, short enough not to accumulate.
…'outputfilename') The first run of the wails-build job built the .app bundle correctly but my verification step looked for the wrong path: Wails actual: build/bin/agent-inbox.app/Contents/MacOS/agent-inbox-ui Verification: build/bin/agent-inbox-ui.app/Contents/MacOS/agent-inbox-ui Reason: wails.json has `name: agent-inbox` (the .app bundle name) and `outputfilename: agent-inbox-ui` (the embedded binary name) — Wails uses each for its own purpose. Both are deliberate: the bundle reads better in Finder as 'agent-inbox', the binary needs a unique name. Updated the CI verification + artifact upload to match. Also moved the directory listing (`ls -la build/bin/`) before the existence checks so a future mismatch is debuggable from the log without having to re-run.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a CI job that runs the actual Wails build on a clean macOS runner — proves
wails build -platform darwin/universalproduces a runnable .app bundle without manual setup.What it does
wails@v2.11.0)wails doctor(info only)wails build -platform darwin/universal -cleanContents/MacOS/agent-inbox-uiexists and is executable)Type of change
Why now
Until now the Wails build was theoretical from the 9975WX side (no GUI deps locally). CI on a hosted macOS runner gives us "yes, this builds on a clean machine" — the same signal a first-time installer would get.
Aggregator
ci-all-greenextended to requirewails-buildalong withlint/python/go-and-frontend. Branch protection ruleset (now active) only requires the singleci-all-greenname, so nothing to update there.Checklist