From 70c88dbed478de7727cadfc0df1766a844523040 Mon Sep 17 00:00:00 2001 From: Thomas Sibley Date: Wed, 31 Jan 2024 17:07:36 -0800 Subject: [PATCH] Standalone builds for macOS aarch64 (aka arm64, Apple Silicon, M1/M2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitHub released public runners.¹ Great timing too, as I was just about to look into using the ARM hardware that's available for macOS with GitHub's (paid) large runners². This also beats operating a self-hosted runner, whether that's on EC2³ or our own Mac Mini.⁴ And the icing on the cake is that everything Just Worked by merely enabling builds for this architecture. \o/ High fives all around, everyone. Changes to the standalone installer to follow separately⁵, as those need to be held for merge until after the first release with these builds available. ¹ ² ³ --- .github/workflows/ci.yaml | 18 +++++++++--------- CHANGES.md | 6 ++++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2f9d7165..c85c686f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -99,13 +99,6 @@ jobs: # # ¹ https://pyoxidizer.readthedocs.io/en/stable/pyoxidizer_distributing_binary_portability.html # ² https://pyoxidizer.readthedocs.io/en/stable/pyoxidizer_status.html#an-official-build-environment - # - # XXX TODO: GitHub doesn't yet host any runners on M1 (Apple Silicon, - # aarch64, arm64) hardware, and we don't have M1 hardware on which to - # self-host a runner. Amazon's mac2.metal EC2 instances are M1, but - # they cost a minimum of ~$15/day. It would be cheaper to buy an M1 - # Mac Mini for ~$700 which would pay for itself in less than 2 months. - # -trs, 31 May 2022 include: - os: ubuntu-22.04 target: x86_64-unknown-linux-gnu @@ -115,6 +108,10 @@ jobs: target: x86_64-apple-darwin exe: nextstrain + - os: macos-14 + target: aarch64-apple-darwin + exe: nextstrain + - os: windows-2019 target: x86_64-pc-windows-msvc exe: nextstrain.exe @@ -283,13 +280,12 @@ jobs: # end-user runtime issues with our binaries (e.g. missing DLLs). Such # fresh CI machines are not readily available, however, since # pre-installation is convenient for builds. - # - # XXX TODO: macOS aarch64 (M1, Apple Silicon, arm64); see above. include: - { os: ubuntu-20.04, target: x86_64-unknown-linux-gnu } - { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu } - { os: macos-11, target: x86_64-apple-darwin } - { os: macos-12, target: x86_64-apple-darwin } + - { os: macos-14, target: aarch64-apple-darwin } - { os: windows-2019, target: x86_64-pc-windows-msvc } - { os: windows-2022, target: x86_64-pc-windows-msvc } @@ -371,6 +367,10 @@ jobs: with: name: standalone-x86_64-apple-darwin + - uses: actions/download-artifact@v4 + with: + name: standalone-aarch64-apple-darwin + - uses: actions/download-artifact@v4 with: name: standalone-x86_64-pc-windows-msvc diff --git a/CHANGES.md b/CHANGES.md index 35260f4b..704ab525 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -13,6 +13,12 @@ development source code and as such may not be routinely kept up to date. # __NEXT__ +## Improvements + +* We now produce standalone installation archives for macOS running on aarch64 + hardware (aka arm64, Apple Silicon, M1/M2). + ([#357](https://github.com/nextstrain/cli/pull/357)) + # 8.0.1 (29 January 2024)