Skip to content

Conversation

per1234
Copy link
Contributor

@per1234 per1234 commented Sep 16, 2025

What kind of change does this PR introduce?

Bug fix

What is the current behavior?

The docker.elastic.co/beats-dev/golang-crossbuild:1.24.4-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.4-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 bug was already fixed in the release and tester build workflows (#2850, #2896), but the same was never done for the nightly build workflow.

What is the new behavior?

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

Does this PR introduce a breaking change, and is titled accordingly?

No breaking change

Other information

In order to facilitate the review of this PR, I performed a run of the workflow in my fork, notarized using a certificate from my personal Apple Developer Program account:

https://github.com/per1234/arduino-cli/actions/runs/17781046849


It is standard practice to use the "latest" GitHub Actions runner identifiers in the project's workflows, which causes the workflow runs to always use the newest stable runner version. However, GitHub has broken from this established convention by choosing to not provide "latest" identifiers for the Linux ARM runners (actions/partner-runner-images#118 (comment)). For this reason, there was not alternative but to use the version-specific ubuntu-24.04-arm runner name in the workflow. It will be necessary to manually update the runner name as new stable versions are made available (or more likely after GitHub's removal of the runner in use breaks the workflows).

…y builds

The `docker.elastic.co/beats-dev/golang-crossbuild:1.24.4-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.4-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.

This was already done for the release and tester build workflows, but the fix was not applied to the nightly build
workflow at that time.

It is standard practice to use the "latest" GitHub Actions runner identifiers in the project's workflows, which causes
the workflow runs to always use the newest stable runner version. However, GitHub has broken from this established
convention by choosing to not 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 GitHub's removal of the runner in use breaks the workflows).
@per1234 per1234 requested a review from cmaglie September 16, 2025 23:01
@per1234 per1234 self-assigned this Sep 16, 2025
@per1234 per1234 added topic: infrastructure Related to project infrastructure type: imperfection Perceived defect in any part of project labels Sep 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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