How to Set Up ARM64 GitHub Larger Runners
ARM64 larger runners are created like any larger runner but on the Linux ARM64 platform, with one catch: not every community action is ARM64-compatible.
According to GitHub's docs, larger runners are available for Linux ARM64, and all GitHub-provided actions are compatible with ARM64 runners, though community actions may not be and can need manual installation at runtime. ARM64 larger runners also tend to list lower per-minute rates than x64 of the same size. Sources: https://docs.github.com/en/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners, https://docs.github.com/en/actions/reference/runners/larger-runners, https://docs.github.com/en/billing/reference/actions-runner-pricing.
Create the ARM64 runner
- In Settings, Actions, Runners, create a new GitHub-hosted runner.
- Choose the Linux ARM64 platform.
- Pick an ARM64-capable image and size (ARM64 sizes run up to 64 vCPU per GitHub's reference).
- Assign a runner group and name it clearly, for example ubuntu-24.04-arm-16core.
Target it from the workflow
jobs:
build-arm:
runs-on:
labels: ubuntu-24.04-arm-16core
steps:
- uses: actions/checkout@v4
- run: uname -m # expect aarch64
- run: ./build.shHandle non-ARM64 actions
According to GitHub's docs, GitHub-provided actions are ARM64-compatible, but some community actions are not and must be installed manually at runtime. If an action fails on ARM64, check for an ARM64 build or replace that step with a direct install. Source: https://docs.github.com/en/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners.
A managed ARM64 option
If you want ARM64 capacity without managing groups, labels, and per-minute cost, Latchkey offers managed runners with a drop-in runs-on swap and self-healing for transient failures. Compare it on one ARM64 workflow before committing.