From 3d280a5e91323fd7780c7cc90529e79057a59ff6 Mon Sep 17 00:00:00 2001 From: Simon Wright Date: Tue, 14 Jan 2025 09:37:33 +0000 Subject: [PATCH] feat: universal builds for macOS (#1820) * Nightly build generates macOS universal binary. For macOS (Darwin), some users are running on Intel silicon (x86_64), some on Apple silicon (aarch64). The purpose of this commit is to generate a universal binary of alr for macOS, so that users won't need to specify which version they need -- the loader will select the appropriate binary. To do this, a new job 'build-macos-universal' runs after the 'build' job has completed (which implies completion of its runs on macos-13 (x86_64) and macos-14 (aarch64)). This job dowloads & unpacks the x86_64 build to x86_64/, and the aarch64 build to aarch64/. It then copies aarch64/ to universal/ (so as to include the additional information, and runs lipo to create the universal binary in universal/bin/alr. The new binary has to be marked as executable, don't know why. alr-nightly-bin-universal-macos.zip is created and uploaded to the release directory. * .github/workflows/nightly.yml (build-macos-universal): new. * Release build generates macOS universal binary. For macOS (Darwin), some users are running on Intel silicon (x86_64), some on Apple silicon (aarch64). The purpose of this commit is to generate a universal binary of alr for macOS, so that users won't need to specify which version they need -- the loader will select the appropriate binary. To do this, a new job 'build-macos-universal' runs after the 'build' job has completed (which implies completion of its runs on macos-13 (x86_64) and macos-latest (aarch64)). This job dowloads & unpacks the latest prerelease x86_64 build to x86_64/, and the latest prerelease aarch64 build to aarch64/. It then runs lipo to create the universal binary in ./bin/alr. The new binary has to be marked as executable, don't know why. alr-