Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork445
[skip changelog] Use compatible runner for macOS Apple Silicon nightly builds#3007
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
…y buildsThe `docker.elastic.co/beats-dev/golang-crossbuild:1.24.4-darwin-arm64-debian10` container is used for the releasebuilds 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 andso 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-debian10WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requestedexec /crossbuild: exec format errortask: 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 iscompatible with the container.This was already done for the release and tester build workflows, but the fix was not applied to the nightly buildworkflow at that time.It is standard practice to use the "latest" GitHub Actions runner identifiers in the project's workflows, which causesthe workflow runs to always use the newest stable runner version. However, GitHub has broken from this establishedconvention by choosing to not provide "latest" identifiers for the Linux ARM runners. For this reason, theversion-specific runner name was used in the workflow. It will be necessary to manually update the runner name as newstable versions are made available (or more likely after GitHub's removal of the runner in use breaks the workflows).
0b61281 intoarduino:master 2 checks passed
Uh oh!
There was an error while loading.Please reload this page.
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Labels
topic: infrastructureRelated to project infrastructure type: imperfectionPerceived defect in any part of project
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading.Please reload this page.
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-debian10container 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:
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-armrunner machine that is compatible with the container.Does this PR introduce a breaking change, and istitled 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-armrunner 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).