Skip to content

fix: map Go's arm64 to ARM64 in host environment runner arch - #6182

Open
pmeida wants to merge 1 commit into
nektos:masterfrom
pmeida:fix/host-env-arm64-runner-arch
Open

pmeida wants to merge 1 commit into
nektos:masterfrom
pmeida:fix/host-env-arm64-runner-arch

Conversation

@pmeida

@pmeida pmeida commented Sep 10, 2026

Copy link
Copy Markdown

Summary

When running act with -P ubuntu-latest=-self-hosted on an ARM64 host, RUNNER_ARCH and runner.arch were set to arm64 (lowercase) instead of ARM64, violating the GitHub Actions spec which defines the valid values as X86, X64, ARM, ARM64 (always uppercase).

Root cause: goArchToActionArch() in pkg/container/host_environment.go had a mapping for "aarch64" -> "ARM64" but was missing "arm64", which is what Go's runtime.GOARCH returns on ARM64 hosts. The value fell through the mapper and was returned verbatim in lowercase.

The Docker container path (docker_run.go) already handled "arm64" correctly - this aligns host_environment.go with the same mapping.

Change

One line added to goArchToActionArch() in pkg/container/host_environment.go:

"arm64": "ARM64",

Fixes #6181

The GitHub Actions spec requires runner.arch to be one of X86, X64,
ARM, ARM64 (uppercase). When using -self-hosted, RUNNER_ARCH is derived
from runtime.GOARCH via goArchToActionArch(). Go reports ARM64 hosts as
"arm64" which was missing from the mapper, causing it to fall through
and be returned verbatim in lowercase.

The docker_run.go path already handled "arm64" correctly; this aligns
host_environment.go with the same mapping.

Fixes nektos#6181
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

runner.arch returns lowercase 'arm64' instead of 'ARM64' when using -self-hosted on ARM64 hosts

2 participants