implement a release workflow that runs on new tags #70
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This project should have a release workflow modeled after the released workflow of the project IronStorage (hosted on the same gitea server and available in ../IronStorage on the dev machine). We only care about the darwin app target for arm64 in this project, so no other targets need to be built, as we only support that plattform for now. But it must spit out app bundles on dmg files that are then available for download.
Implemented in commit
e35f57b(Build tagged macOS releases). Added an active Gitea tag workflow modeled on IronStorage: it creates or refreshes a draft release with issue-linked notes, cross-builds only aarch64-apple-darwin on the configured linux-arm64 runner, creates an ad-hoc-signed DS4Server.app with the icon, Metal sources, and Dev Brain resources, wraps it in a signed DS4Server-TAG-darwin-arm64.dmg, uploads the asset, and publishes only after the build succeeds. Retry handling replaces draft assets instead of duplicating them. Isolated verification: release-note unit test; workflow YAML parse; release-packager cargo test and warning-free Clippy; real optimized packager run producing a 15 MB DMG; hdiutil checksum verification and read-only mount; arm64 Mach-O, bundle ID/version, codesign, Metal resources, and Dev Brain resources verified. Repository gates: cargo fmt --all -- --check; cargo clippy --all-targets --all-features -- -D warnings; make bundle; cargo test --all-features (182 passed, 14 ignored hardware/browser fixtures). Gitea indexes release.yml as active. No release tag was created during verification.