]> _ Git - alire.git/commit
feat: universal builds for macOS (#1820)
authorSimon Wright <simon@pushface.org>
Tue, 14 Jan 2025 09:37:33 +0000 (09:37 +0000)
committerGitHub <noreply@github.com>
Tue, 14 Jan 2025 09:37:33 +0000 (10:37 +0100)
commit3d280a5e91323fd7780c7cc90529e79057a59ff6
tree3473e78e0171b90d1f900b0dd7113d137609b66e
parent09b3893571434ae4b44c94e96ad37a84963aee4f
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-<release]-bin-universal-macos.zip is created and uploaded to the
release directory.

  * .github/workflows/ci-macos.yml (build-macos-universal): new.

* Remove superseded investigative steps.

Remove two steps that were inserted to check that no
com.apple.quarantine attributes were applied when the individual
architecture builds were downloaded (none were applied).

  * .github/workflows/nightly.yml (build-macos-universal):
      (check x86_64 attributes): remove.
      (check aarch64 attributes): remove.
.github/workflows/ci-macos.yml
.github/workflows/nightly.yml