Skip to content

Conversation

per1234
Copy link
Contributor

@per1234 per1234 commented Sep 14, 2025

The docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-darwin-arm64-debian10 container is used for the release builds for the macOS Apple Silicon host. This container will only run on hosts of the linux/arm64 architecture.

The GitHub Actions runner machine previously used to perform the release builds is of the linux/amd64 architecture and so is not compatible with the container. This caused the release builds to fail:

Status: Downloaded newer image for docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-darwin-arm64-debian10
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested
exec /crossbuild: exec format error
task: Failed to run task "dist:macOS_ARM64": exit status 255

The failure is resolved by configuring the release workflows to use the ubuntu-24.04-arm runner machine that is compatible with the container.

The standard practice is to use the "latest" GitHub Actions runner identifiers, which causes the workflow runs to always use the newest stable runner version. However, GitHub has broken from this established convention by refusing to provide "latest" identifiers for the Linux ARM runners. For this reason, the version-specific runner name was used in the workflow. It will be necessary to manually update the runner name as new stable versions are made available (or more likely after the removal of the runner in use breaks the workflows).


Related: arduino/arduino-cli#2896

The `docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-darwin-arm64-debian10` container is used for the release
builds for the macOS Apple Silicon host. This container will only run on hosts of the linux/arm64 architecture.

The GitHub Actions runner machine previously used to perform the release builds is of the linux/amd64 architecture and
so is not compatible with the container. This caused the release builds to fail:

```
Status: Downloaded newer image for docker.elastic.co/beats-dev/golang-crossbuild:1.24.0-darwin-arm64-debian10
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested
exec /crossbuild: exec format error
task: Failed to run task "dist:macOS_ARM64": exit status 255
```

The failure is resolved by configuring the release workflows to use the `ubuntu-24.04-arm` runner machine that is
compatible with the container.

The standard practice is to use the "latest" GitHub Actions runner identifiers, which causes the workflow runs to always
use the newest stable runner version. However, GitHub has broken from this established convention by refusing to provide
"latest" identifiers for the Linux ARM runners. For this reason, the version-specific runner name was used in the
workflow. It will be necessary to manually update the runner name as new stable versions are made available (or more
likely after the removal of the runner in use breaks the workflows).
@per1234 per1234 self-assigned this Sep 14, 2025
@per1234 per1234 added topic: infrastructure Related to project infrastructure architecture: arm Specific to ARM host architecture os: macos Specific to macOS operating system type: imperfection Perceived defect in any part of project labels Sep 14, 2025
@per1234 per1234 merged commit 29bed6c into arduino:main Sep 14, 2025
20 checks passed
@per1234 per1234 deleted the fix-release branch September 14, 2025 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
architecture: arm Specific to ARM host architecture os: macos Specific to macOS operating system topic: infrastructure Related to project infrastructure type: imperfection Perceived defect in any part of project
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant