
Image: GitHub Docs / Mohamed Hassan, CC BY-SA 4.0 — how GitHub Actions runs jobs on runners. The diagram is from GitHub's own Actions documentation.
TL;DR: GitHub Actions ARM32 retirement explained: GitHub will end ARM32 job execution on its hosted Linux and Windows runners on 8 December 2026, because Node 24 has no ARM32 support. Most workflows are unaffected, but any job that runs 32-bit ARM code natively must move to ARM64 or x64 runners before the deadline.
Key Highlights
- GitHub announced on 12 November 2026 that hosted GitHub Actions runners will stop running ARM32 jobs on Linux and Windows by 8 December 2026.
- The retirement also removes native AArch32 user-space execution from hosted runners.
- The cause is the Node.js 20 to Node.js 24 switch: Node 24 has no ARM32 support, and Node 20 left Actions runners on 23 September 2026.
- ARM64 runners are unaffected — GitHub offers ubuntu-24.04-arm, ubuntu-22.04-arm and windows-11-arm labels — and x64 workflows are untouched.
- Self-hosted ARM32 runners have already been unsupported since the Node 20 removal, so self-hosting is not a supported escape route.
What is the GitHub Actions ARM32 retirement?
GitHub posted a short retirement notice in its changelog on 12 November 2026: "GitHub Actions hosted runners will be ending support for ARM32 job execution on Windows and Linux by 8th Dec 2026." The same notice adds that the change "includes the removal of support on hosted runners for native AArch32 User-space execution."
In plain terms, a workflow job that asks a GitHub-hosted runner to run on 32-bit ARM will stop working after 8 December 2026. AArch32 is the 32-bit ARM architecture — the one behind ARMv7 chips, older Raspberry Pi operating systems and a long tail of embedded Linux devices. The retirement covers both Linux and Windows hosted runners, and it covers both kinds of ARM32 use: jobs scheduled on an ARM32 runner and jobs that execute 32-bit ARM user-space code natively.
GitHub has not published the exact error message ARM32 jobs will hit after the deadline, so treat any ARM32 job as broken from 8 December. The notice is three sentences long and points readers to a GitHub Community discussion for questions — there is no migration guide attached to it, which is why the steps below matter.
Why is GitHub doing this? The Node 24 connection
The retirement is a knock-on effect of a runtime upgrade, not a decision about ARM hardware. GitHub's JavaScript actions run on Node.js, and the Actions platform has been moving from Node 20 to Node 24. Node 20 reached end of life in April 2026, became the non-default runtime on 16 June 2026, and was removed from Actions runners on 23 September 2026. Node 24, the replacement, has no official ARM32 support — GitHub's own deprecation notice says so directly — and it is also incompatible with macOS 13.4 and earlier.
That sequence explains the timing. Once the last Node version that could run on ARM32 was gone from the runners, keeping ARM32 execution working meant maintaining a platform the runtime no longer supports. The December date gives teams roughly four weeks from the announcement to move. It also explains why the change lands as a retirement rather than a deprecation with a long tail: the underlying runtime is already gone. Readers who followed the Node.js November 11 security release will recognise the pattern — Node's own release train now sets the pace for the tooling built on top of it.
Who is affected — and who is not
Most GitHub Actions users will notice nothing. The default runners — ubuntu-latest, windows-latest, macos-latest — are x64 or ARM64, and those are untouched. The teams that need to act are the ones with an explicit ARM32 dependency hiding in a workflow file.
| Setup | Status after 8 December 2026 | What to do |
|---|---|---|
| Hosted Linux ARM32 jobs | Support ends | Move to ubuntu-24.04-arm or an x64 label |
| Hosted Windows ARM32 jobs | Support ends | Move to windows-11-arm or an x64 label |
| Native AArch32 user-space execution on hosted runners | Removed | Stop relying on 32-bit ARM binaries running in CI |
| x64 workflows (ubuntu-latest, windows-latest) | Unaffected | Nothing |
| ARM64 workflows (ubuntu-24.04-arm, windows-11-arm) | Unaffected | Nothing — these are the supported ARM path |
| Self-hosted ARM32 runners | Already unsupported since 23 September 2026 | Do not treat self-hosting as the fix; migrate the workload |
| Cross-compiling ARM32 binaries on x64 or ARM64 runners | Not what the notice removes | Test the cross-compile path before the deadline |

Illustrative image: server hardware of the kind that powers CI runners. Image: Wikimedia Commons / BalticServers.com, CC BY-SA 3.0.
The distinction in the last row matters most. Compiling for ARM32 and running on ARM32 are different things, and GitHub is ending the running, not the target. As independent coverage of the announcement notes, teams may still be able to produce ARM32 binaries using supported build environments — for example, cross-compiling on an x64 or ARM64 runner. What disappears is the ability to execute 32-bit ARM code natively on GitHub-hosted hardware, which is how many embedded and legacy projects test their builds. If your pipeline both builds and runs ARM32 code, only the running half needs a new home.
How to migrate before 8 December
Start with an audit, because ARM32 dependencies are rarely labelled clearly. Search every workflow file under .github/workflows for arm32, armv7, armhf and aarch32, and check the runs-on value of every job. Also check the actions your workflows call: GitHub's documentation warns that while its own actions are compatible with ARM64 hosted runners, community actions may not be, and some need to be installed manually at runtime.
Then pick the replacement per job. If the workload genuinely runs on 64-bit ARM, switch runs-on to ubuntu-24.04-arm on Linux or windows-11-arm on Windows — the labels are explicit, and ubuntu-latest never resolves to ARM, so do not expect the default label to pick up the slack. If the job only needs to produce an ARM32 binary, keep it on an x64 runner and cross-compile, then verify the output still behaves as expected. If native 32-bit ARM execution is truly unavoidable, the job has to move to infrastructure you control — but note that GitHub no longer supports ARM32 self-hosted runners either, so that route carries its own support risk.
Test the migrated jobs before the deadline rather than on it. ARM64 is not a drop-in replacement for software written exclusively for 32-bit environments: pointers, system calls and some native dependencies behave differently, and a green build on ARM64 does not prove a 32-bit target still works. Run the new configuration in parallel with the old one for a few days, compare the results, and only then delete the ARM32 job. The same pass is a good moment to check the other Actions change coming in December, described below.
What else is changing in GitHub Actions this winter
The ARM32 retirement is not the only deadline on GitHub's changelog. From 2 December 2026, GitHub Actions will block pull_request_target events by default in all public repositories, unless an Actions event policy explicitly allows them. The date was moved once already — enforcement was first scheduled for 2 November — and GitHub ran a two-hour rehearsal block on 9 November and has another scheduled for 16 November, from 16:00 to 18:00 UTC, during which affected workflows fail for real. Private and internal repositories are not affected, and a repository that already has an applicable event policy keeps it. The trigger matters because it is the one that lets a workflow run with repository secrets on pull requests from forks, which is also why it has featured in supply-chain attacks — including the GitHub CI secret-stealer attack that hijacked thousands of accounts this month.
Two smaller changelog items arrived around the same time. The macOS 14 runner image was retired on 2 November 2026, and on 12 November GitHub's secret scanning began detecting Cloudflare service tokens in repositories. None of these is as disruptive as the ARM32 retirement for the teams it hits, but together they make November and December a season for checking Actions settings rather than assuming last year's workflows still comply. The new pull request overview page GitHub shipped this month is a useful place to watch the results land.
Should you care?
✅ Verdict: If your workflows run on ubuntu-latest, windows-latest or an ARM64 label, you can ignore this — nothing changes for you. If any job touches ARM32, act this week: audit your workflow files, move the job to an ARM64 or x64 runner, and test it before 8 December. The four-week window is short, and the failure mode after the deadline is a broken pipeline, not a warning.
FAQs
Does GitHub Actions still support ARM32?
No. GitHub announced on 12 November 2026 that hosted runners will end ARM32 job execution on Linux and Windows by 8 December 2026, including native AArch32 user-space execution. Self-hosted ARM32 runners have been unsupported since Node 20 was removed on 23 September 2026.
What is the difference between ARM32 and ARM64 in GitHub Actions?
ARM32 (AArch32) is the 32-bit ARM architecture used by older ARMv7 chips and 32-bit Raspberry Pi systems; ARM64 (AArch64) is the 64-bit architecture used by modern ARM servers and Apple silicon Macs. GitHub offers ARM64 hosted runners under explicit labels such as ubuntu-24.04-arm and windows-11-arm, but ARM64 is not a drop-in replacement for software written only for 32-bit environments.
Can I still build ARM32 binaries with GitHub Actions after 8 December?
Probably, but only by cross-compiling. The retirement ends ARM32 job execution on hosted runners, not ARM32 as a build target, so producing an ARM32 binary from an x64 or ARM64 runner is a different operation from running ARM32 code. Test that cross-compile path before the deadline, because you will no longer be able to run the resulting 32-bit binary natively on GitHub-hosted hardware to verify it.
What happens to my workflows after 8 December 2026?
GitHub has not published the exact error ARM32 jobs will produce, so assume they fail. Any job that requests ARM32 execution on a hosted runner should be treated as broken from that date. While you are auditing, also check for pull_request_target use in public repositories — that trigger is blocked by default from 2 December 2026.
Takeaway
GitHub Actions drops ARM32 on 8 December 2026 because Node 24 cannot run on it. Most developers are unaffected, but anyone testing 32-bit ARM code in CI has four weeks to move to ARM64 or x64 runners — and to check the pull_request_target block arriving six days earlier.
Open your repository's .github/workflows folder today and search for arm32, armv7 and aarch32 — if nothing matches, you are done; if something does, migrate that job this week.
Sources
GitHub Changelog — Actions for ARM32 Linux & Windows retirement (12 November 2026)
GitHub Changelog — Deprecation of Node 20 on GitHub Actions runners
GitHub Changelog — pull_request_target blocked by default December 2
GitHub Docs — GitHub-hosted runners reference (ARM64 labels)
Undercode News — GitHub Actions to Retire ARM32 Linux and Windows Runner Support on December 8, 2026 (12 November 2026)
Comments
Post a Comment