Skip to content

fix(ci): make the binary release actually build and attach#6

Merged
BenHuddart merged 2 commits into
mainfrom
fix/release-dispatch-permission
Jul 5, 2026
Merged

fix(ci): make the binary release actually build and attach#6
BenHuddart merged 2 commits into
mainfrom
fix/release-dispatch-permission

Conversation

@BenHuddart

@BenHuddart BenHuddart commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Two bugs kept the desktop-installer build from ever succeeding. Both surfaced the first time release-binaries.yml ran (on v1.4.0).

Bug 1 — dispatch step lacked permission (403)

The Build and attach desktop installers step in release.yml dispatches release-binaries.yml via gh workflow run, which needs actions: write. The job only had contents/issues/pull-requests write, so it failed:

HTTP 403: Resource not accessible by integration

Fix: add actions: write to release.yml.

Bug 2 — packaging/gleplot.spec was gitignored, never committed

Both build jobs run pyinstaller packaging/gleplot.spec and died immediately:

ERROR: Spec file "packaging/gleplot.spec" not found!

The generic PyInstaller *.spec rule in .gitignore (meant for auto-generated specs) silently excluded our hand-authored one, so it was never in the repo. Never caught because the binary workflow had never actually run. Fix: !packaging/gleplot.spec negation + commit the file. (Same class of bug as the *.png asset exclusion fixed in PR #4.)

Verification

  • Preview build workflows (preview-windows, preview-macos-arm) dispatched against this branch to confirm PyInstaller now finds the spec and the frozen app passes --smoke-test.
  • Merging cuts v1.4.1, which — with both fixes in place — auto-dispatches release-binaries.yml and attaches the Windows .exe / macOS .dmg, proving the end-to-end auto-dispatch chain.

v1.4.0 shipped with wheels only; its installers can be backfilled with a one-off gh workflow run release-binaries.yml -f tag=v1.4.0 once this is on main.

🤖 Generated with Claude Code

BenHuddart and others added 2 commits July 5, 2026 22:43
The "Build and attach desktop installers" step in release.yml calls
`gh workflow run release-binaries.yml` via the GitHub API, which requires
`actions: write`. The job only had contents/issues/pull-requests write, so
the dispatch failed with HTTP 403 "Resource not accessible by integration"
on the v1.4.0 release — the release + wheels published fine, but the desktop
installers were never kicked off. Add the missing permission so every future
release automatically builds and attaches the Windows .exe / macOS .dmg.

(v1.4.0's installers were attached via a manual one-off dispatch.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ded it

release-binaries.yml runs `pyinstaller packaging/gleplot.spec`, but that file
was never in the repo: the generic PyInstaller `*.spec` rule in .gitignore
(meant for auto-generated specs) silently swallowed our hand-authored one. So
both desktop build jobs failed at the very first step with:

    ERROR: Spec file "packaging/gleplot.spec" not found!

This was never caught because the binary workflow had never actually run
before v1.4.0. Add a `!packaging/gleplot.spec` negation and commit the file.
Same class of bug as the earlier *.png/asset exclusion fixed in PR #4.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@BenHuddart BenHuddart changed the title fix(ci): grant actions:write so release can dispatch the binary build fix(ci): make the binary release actually build and attach Jul 5, 2026
@BenHuddart BenHuddart merged commit d565e70 into main Jul 5, 2026
6 checks passed
@BenHuddart BenHuddart deleted the fix/release-dispatch-permission branch July 5, 2026 22:06
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