Skip to content

ci(release): validate the shipped Universal Binary before upload - #47

Merged
yves-vogl merged 1 commit into
mainfrom
ci/release-artefact-validation
Aug 27, 2026
Merged

yves-vogl merged 1 commit into
mainfrom
ci/release-artefact-validation

Conversation

@yves-vogl

Copy link
Copy Markdown
Contributor

Closes #45 — fleet audit class 1 follow-up (basilica-audio/.github#1).

release.yml built, signed, notarized and attached the macOS binary without ever validating it; PR-level CI validates a different build of the same commit. This PR gates the upload on the artefact that actually ships:

  • lipo -archs assertion on the signed, stapled stage/ bundles (VST3, AU, Standalone) — both arm64 and x86_64 must be present.
  • pluginval v1.0.4 (SHA-256-pinned, same pin as ci.yml), strictness 10 against the shipped VST3 and the installed copy of the shipped AU — native and under Rosetta 2 (arch -x86_64), so both slices are exercised. Pass/fail is asserted through the existing .github/scripts/assert-pluginval-passed.sh multi-signal gate.
  • auval -strict on the shipped AU, native + Rosetta 2.

All steps run after signing/stapling and before gh release upload, so a broken bundle can no longer reach the release page. The macOS job timeout goes 45 → 60 minutes to make room for the sweep next to the existing 40-minute notarization step budget. No other change to the release flow.

Honesty note: a tag-triggered workflow only truly proves itself on a tag push — CI on this PR proves the file parses (actionlint clean locally), not that a release run passes. The validation steps themselves are step-for-step the ones ci.yml has been running green since the CI-hardening wave, pointed at stage/ instead of the build tree.

Assert both arm64 and x86_64 slices with lipo, run the SHA-pinned
pluginval v1.0.4 strictness-10 sweep (native + Rosetta 2) and auval
-strict against the signed, stapled stage/ bundles before gh release
upload. Mirrors ci.yml's validation, pointed at the artefact that
actually ships. macOS job timeout 45 -> 60 minutes.

Closes #45
@yves-vogl
yves-vogl merged commit 10e085d into main Aug 27, 2026
2 checks passed
@yves-vogl
yves-vogl deleted the ci/release-artefact-validation branch August 27, 2026 06:20
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: assert and validate the shipped Universal Binary (fleet audit class 1 follow-up)

1 participant