CI: Add macOS development release.#3418
Merged
Merged
Conversation
Stoabrogga
pushed a commit
to Stoabrogga/vmangos
that referenced
this pull request
May 23, 2026
(cherry picked from commit 01e4a75) Adapted to the fork
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🍰 Pullrequest
This adds a macOS development release (
arm64-only / Apple silicon) similar to the existing Linux and Windows releases, as requested by @ratkosrb.The release is built on
macos-26targeting macOS 26 (CMAKE_OSX_DEPLOYMENT_TARGET=26.0) and published asdev-macos-arm64-<sha>.tar.gzalongside the existing Linux and Windows assets on thelatesttag.As with the Linux release, the package is portable but not fully statically linked (macOS doesn't actually support fully static binaries;
libSystem.dylibalways stays dynamic). Instead, the package bundles non-system runtime libraries inlib/and usesinstall_name_toolto rewrite install names andrpaths, so binaries underbin/find the bundled libraries after extraction. Every Mach-O file is then ad-hoc signed (codesign --force --sign -) becauseinstall_name_toolrewrites invalidate any prior signature.System libraries under
/usr/lib/(e.g.libc++.1.dylib,libSystem.B.dylib,libresolv.9.dylib) and/System/are not bundled, so the archive is expected to work on Apple silicon Macs running macOS 26 or newer. Intel Macs are not supported (Apple is removing Intel support with macOS 27 anyway and I don't think complicating the workflow is worth it to add support for EOL Apple systems).The build pins
mysql-client@8.4(MySQL LTS through 2032) rather than the rollingmysql-clientformula because MySQL 9 removed themysql_native_passwordauthentication plugin that MariaDB still uses by default. MySQL 8.4 keeps it built into the client library, so MariaDB users can connect out of the box.openssl@3is also pinned explicitly even though it's preinstalled onmacos-26today, so a future runner image change can't silently break the build. The same pins are mirrored into the macOS CI build so we actually validate the release configuration.The workflow includes a small smoke test (which I can also remove if unwanted) that extracts the archive on the same runner, runs
realmd --versionandmangosd --version, and walks every Mach-O file withotool -Lto flag any dependency that is not part of the bundle and isn't under/usr/lib/*or/System/*.Tested end-to-end on my Mac:

Proof
Issues
How2Test
latestrelease (dev-macos-arm64-<sha>.tar.gz).cd vmangos-macos-arm64xattr -d -r com.apple.quarantine .DataDir = "."(or put it elsewhere and adjustDataDiraccordingly):realmdandmangosdfrom the archive root:Todo / Checklist