Skip to content

Commit 3ef5c18

Browse files
committed
Standalone builds for Linux aarch64 (aka arm64)
GitHub released public runners.¹ This will ultimately let us use standalone installation archives in our linux/arm64 Docker images.² 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. ¹ <https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/> ² <nextstrain/docker-base#273> ³ <#490>
1 parent e6b55ff commit 3ef5c18

File tree

6 files changed

+34
-7
lines changed

6 files changed

+34
-7
lines changed

.github/actions/run-integration-tests/action.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ runs:
2424
shell: bash -l -eo pipefail {0}
2525
run: nextstrain setup docker
2626

27-
- if: runner.os != 'Windows'
27+
- if: runner.os != 'Windows' && !(runner.os == 'Linux' && runner.arch == 'ARM64')
2828
shell: bash -l -eo pipefail {0}
2929
run: nextstrain setup conda
3030

31-
- if: runner.os != 'macOS' && runner.os != 'Windows'
31+
- if: runner.os != 'macOS' && runner.os != 'Windows' && !(runner.os == 'Linux' && runner.arch == 'ARM64')
3232
shell: bash -l -eo pipefail {0}
3333
run: nextstrain setup singularity
3434

@@ -45,14 +45,14 @@ runs:
4545
git -C zika-tutorial clean -dfqx
4646
nextstrain build --docker --cpus 2 zika-tutorial
4747
48-
- if: runner.os != 'Windows'
48+
- if: runner.os != 'Windows' && !(runner.os == 'Linux' && runner.arch == 'ARM64')
4949
name: Build zika-tutorial with --conda
5050
shell: bash -l -eo pipefail {0}
5151
run: |
5252
git -C zika-tutorial clean -dfqx
5353
nextstrain build --conda --cpus 2 zika-tutorial
5454
55-
- if: runner.os != 'macOS' && runner.os != 'Windows'
55+
- if: runner.os != 'macOS' && runner.os != 'Windows' && !(runner.os == 'Linux' && runner.arch == 'ARM64')
5656
name: Build zika-tutorial with --singularity
5757
shell: bash -l -eo pipefail {0}
5858
run: |

.github/actions/setup-integration-tests/action.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,14 @@ runs:
7272
python3 --version | grep -F 'Python ${{ inputs.python-version }}.'
7373
[[ "$(python --version)" == "$(python3 --version)" ]]
7474
75-
# Install Singularity on Linux.
75+
# Install Singularity on Linux x86_64.
7676
#
7777
# We don't install it with Conda because Conda Forge provides a non-suid
7878
# build of Singularity. We're compatible with Singularity's non-suid mode,
7979
# but production usages of Singularity are likely to use its suid mode, so
8080
# I'd rather test against that.
8181
# -trs, 6 Jan 2023
82-
- if: runner.os == 'Linux'
82+
- if: runner.os == 'Linux' && runner.arch == 'X64'
8383
shell: bash -l -eo pipefail {0}
8484
env:
8585
GITHUB_TOKEN: ${{ github.token }}

.github/workflows/ci.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ jobs:
106106
target: x86_64-unknown-linux-gnu
107107
exe: nextstrain
108108

109+
- os: ubuntu-22.04-arm
110+
target: aarch64-unknown-linux-gnu
111+
exe: nextstrain
112+
109113
- os: macos-13
110114
target: x86_64-apple-darwin
111115
exe: nextstrain
@@ -299,6 +303,8 @@ jobs:
299303
include:
300304
- { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu }
301305
- { os: ubuntu-24.04, target: x86_64-unknown-linux-gnu }
306+
- { os: ubuntu-22.04-arm, target: aarch64-unknown-linux-gnu }
307+
- { os: ubuntu-24.04-arm, target: aarch64-unknown-linux-gnu }
302308
- { os: macos-13, target: x86_64-apple-darwin }
303309
- { os: macos-14, target: x86_64-apple-darwin }
304310
- { os: macos-15, target: x86_64-apple-darwin }
@@ -381,6 +387,10 @@ jobs:
381387
with:
382388
name: standalone-x86_64-unknown-linux-gnu
383389

390+
- uses: actions/download-artifact@v5
391+
with:
392+
name: standalone-aarch64-unknown-linux-gnu
393+
384394
- uses: actions/download-artifact@v5
385395
with:
386396
name: standalone-x86_64-apple-darwin

CHANGES.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ development source code and as such may not be routinely kept up to date.
1313

1414
# __NEXT__
1515

16+
## Improvements
17+
18+
* We now produce standalone installation archives for Linux running on aarch64
19+
hardware (aka arm64). The standalone installer will use these archives
20+
starting with this release.
21+
([#489](https://github.com/nextstrain/cli/pull/489),
22+
[#490](https://github.com/nextstrain/cli/pull/490))
23+
1624

1725
# 10.4.1 (14 October 2025)
1826

devel/pyoxidizer

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ main() {
2727
--volume "$build/cache/pyoxidizer:/tmp/.cache/pyoxidizer" \
2828
--volume "$build/cache/pip:/tmp/.cache/pip" \
2929
--volume "$build/cache/cargo:/tmp/.cargo" \
30-
quay.io/pypa/manylinux2014_x86_64 "$pyoxidizer" "$@"
30+
quay.io/pypa/manylinux2014_"$(platform-machine)" "$pyoxidizer" "$@"
3131
else
3232
exec "$pyoxidizer" "$@"
3333
fi

doc/changes.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@ development source code and as such may not be routinely kept up to date.
1616
(v-next)=
1717
## __NEXT__
1818

19+
(v-next-improvements)=
20+
### Improvements
21+
22+
* We now produce standalone installation archives for Linux running on aarch64
23+
hardware (aka arm64). The standalone installer will use these archives
24+
starting with this release.
25+
([#489](https://github.com/nextstrain/cli/pull/489),
26+
[#490](https://github.com/nextstrain/cli/pull/490))
27+
1928

2029
(v10-4-1)=
2130
## 10.4.1 (14 October 2025)

0 commit comments

Comments
 (0)