Fix homebrew SHA mismatch race condition (#111)
Root cause: update-homebrew.yml triggered on release:published, which fires before softprops/action-gh-release finishes uploading assets. The workflow downloaded a 404 page instead of the DMG and committed its SHA. Fix: - Change trigger from release:published to workflow_run (fires after the release workflow completes, guaranteeing assets are uploaded) - Add download validation with retries and file size checks - Add SHA verification step before committing to the cask - Add homebrew cask update to build-sign-upload.sh for local releases - Add regression test (tests/test_homebrew_sha.sh) - Update /release and /release-local skills with homebrew verification steps Fixes #110
This commit is contained in:
parent
41639d226c
commit
fc1de08561
6 changed files with 158 additions and 8 deletions
|
|
@ -41,10 +41,15 @@ Full end-to-end release built locally. Bumps version, updates changelog, tags, t
|
|||
./scripts/build-sign-upload.sh vX.Y.Z
|
||||
```
|
||||
|
||||
This script handles: GhosttyKit build, xcodebuild, Sparkle key injection, codesigning, notarization (app + DMG), appcast generation, GitHub release upload, and cleanup.
|
||||
This script handles: GhosttyKit build, xcodebuild, Sparkle key injection, codesigning, notarization (app + DMG), appcast generation, GitHub release upload, homebrew cask update, and cleanup.
|
||||
|
||||
If the script fails, run `say "cmux release failed"`.
|
||||
|
||||
### 7. Verify homebrew cask
|
||||
|
||||
- Run `bash tests/test_homebrew_sha.sh` to confirm the cask SHA matches the release DMG
|
||||
- Update the homebrew-cmux submodule pointer: `git add homebrew-cmux && git commit -m "Update homebrew-cmux submodule to latest" && git push origin main`
|
||||
|
||||
## Changelog Guidelines
|
||||
|
||||
**Include only end-user visible changes:**
|
||||
|
|
|
|||
|
|
@ -55,7 +55,13 @@ Prepare a new release for cmux. This command updates the changelog, bumps the ve
|
|||
- Verify the release appears at: https://github.com/manaflow-ai/cmux/releases
|
||||
- Check that the DMG is attached to the release
|
||||
|
||||
12. **Notify**
|
||||
12. **Verify homebrew cask update**
|
||||
- The "Update Homebrew Cask" workflow triggers automatically after the release workflow completes
|
||||
- Watch: `gh run list --workflow=update-homebrew.yml --limit=1` and `gh run watch`
|
||||
- Verify: `cd homebrew-cmux && git pull && grep version Casks/cmux.rb`
|
||||
- Run `bash tests/test_homebrew_sha.sh` to confirm the SHA matches
|
||||
|
||||
13. **Notify**
|
||||
- On success: `say "cmux release complete"`
|
||||
- On failure: `say "cmux release failed"`
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue