Skip to content

ci: Wails GUI build smoke (darwin/universal) - #5

Merged
KI7MT merged 2 commits into
mainfrom
ci/wails-build-smoke
May 10, 2026
Merged

ci: Wails GUI build smoke (darwin/universal)#5
KI7MT merged 2 commits into
mainfrom
ci/wails-build-smoke

Conversation

@KI7MT

@KI7MT KI7MT commented May 10, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a CI job that runs the actual Wails build on a clean macOS runner — proves wails build -platform darwin/universal produces a runnable .app bundle without manual setup.

What it does

  1. macos-latest runner
  2. Install Wails CLI (wails@v2.11.0)
  3. Run wails doctor (info only)
  4. wails build -platform darwin/universal -clean
  5. Verify the .app bundle structure (Contents/MacOS/agent-inbox-ui exists and is executable)
  6. Upload the .app as a 14-day artifact

Type of change

  • Tests / CI
  • Build / packaging (version 0.3.9 → 0.3.10)

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-green extended to require wails-build along with lint/python/go-and-frontend. Branch protection ruleset (now active) only requires the single ci-all-green name, so nothing to update there.

Checklist

  • No code under test changed (CI workflow + version bump only)
  • Aggregator updated to require the new job

KI7MT added 2 commits May 10, 2026 00:09
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.
@KI7MT
KI7MT merged commit 66c06cd into main May 10, 2026
12 checks passed
@KI7MT
KI7MT deleted the ci/wails-build-smoke branch May 10, 2026 00:28
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