How to Use ARM Runners for More Efficient CI
ARM cores often complete the same CI job at a lower energy cost per unit of work than x86.
ARM-based runners frequently deliver more performance per watt, and many providers price them below x86. Moving compatible jobs to ARM cuts energy and often cost; keep an x86 leg where you must still ship or test for x86.
Steps
- Verify your toolchain and dependencies have ARM64 support.
- Point compatible jobs at an ARM runner label.
- Keep an x86 matrix leg only where you ship or must test x86 artifacts.
Workflow
.github/workflows/ci.yml
jobs:
build:
strategy:
matrix:
runner: [ubuntu-24.04-arm, ubuntu-latest]
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- run: npm ci && npm testTradeoffs
- Some native dependencies lack ARM builds and must compile from source or stay on x86.
- If you ship x86 binaries, you still need an x86 build even when tests pass on ARM.
Related guides
How to Right-Size CI Runners Instead of Over-ProvisioningPick the smallest runner that meets a job deadline instead of defaulting to a large one, cutting the idle CPU…
How to Run CI in Lower-Carbon Cloud RegionsPlace self-hosted CI runners and deploys in cloud regions with a cleaner electricity grid, so the same comput…