Skip to content

release: add post-build validation before packaging#83

Merged
ShadyUnderLight merged 1 commit intomainfrom
release-hardening
Apr 28, 2026
Merged

release: add post-build validation before packaging#83
ShadyUnderLight merged 1 commit intomainfrom
release-hardening

Conversation

@ShadyUnderLight
Copy link
Copy Markdown
Owner

Summary

  • Add Validate build artifact step to .github/workflows/release.yml that runs before packaging
  • Checks the built .app has all critical components (Info.plist, executable, embed_metadata.py)
  • Validates CFBundleVersion and CFBundleShortVersionString are non-empty via PlistBuddy
  • Fails the workflow immediately if any check fails, preventing release of a broken artifact
  • Clarify in workflow comment and release notes that this is an arm64-only build

Validation checks

Check Reason
TrackSplitter.app directory exists Build output exists
Contents/Info.plist exists App bundle is valid
Contents/MacOS/TrackSplitter exists + executable Main binary present and runnable
Contents/Resources/embed_metadata.py exists Required resource present
CFBundleVersion non-empty Version info populated
CFBundleShortVersionString non-empty Version info populated

Out of scope (follow-up issues)

  • Universal build (Intel + Apple Silicon)
  • CLI artifact packaging

Fixes #76

Add a Validate build artifact step that checks:
- TrackSplitter.app exists
- Contents/Info.plist exists
- Contents/MacOS/TrackSplitter exists and is executable
- Contents/Resources/embed_metadata.py exists
- CFBundleVersion and CFBundleShortVersionString are non-empty

This prevents releasing broken artifacts when the build appears to succeed
but the output is missing critical components.

Also clarify that the current build is arm64-only.
@ShadyUnderLight ShadyUnderLight merged commit 17c40c9 into main Apr 28, 2026
1 check passed
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.

Release 流程目前过于脆弱:仅构建 arm64 GUI,缺少打包后资源与可运行性校验

2 participants