Enable runners from runs-on.com for Aarch64 CI#15007
Merged
straight-shoota merged 2 commits intomasterfrom Sep 17, 2024
Merged
Conversation
Update to the latest base image. Based on the docker images from 84codes/crystal.
straight-shoota
added a commit
that referenced
this pull request
Sep 17, 2024
https://runs-on.com is a service that provisions machines on AWS on demand to run workflow jobs. It triggers when a job is tagged as `runs-on` and you can configure what kind of machine you like this to run on. The machine specification could likely use some fine tuning (we can use other instance types, and theoretically 8GB should be sufficient). But that'll be a follow-up. For now we know that this works. We expect this to be more price-efficient setup than renting a fixed server or a CI runner service. This patch also includes an update to the latest base image. The old arm base images were using Crystal 1.0 and some outdated libraries which caused problems on the new runners (#15005). The build images are based on the docker images from [84codes/crystal](https://hub.docker.com/r/84codes/crystal).
Collaborator
|
This pull request has been mentioned on Crystal Forum. There might be relevant details there: https://forum.crystal-lang.org/t/sponsored-servers-for-ci-on-aarch64-running-out/7099/9 |
|
@straight-shoota great that you managed to make it work! Still not sure about what's happening with the libssl issue though. What was the version on your old runners? |
Member
Author
|
I put some more details in #15005. The lib version was identical (using the same Docker image in both instances). The only significant differences I can think of are CPUs (Neoverse 2 vs. Gravitron), and probably the kernel version (can't check that anymore though). |
1 task
straight-shoota
added a commit
to crystal-lang/distribution-scripts
that referenced
this pull request
Sep 21, 2024
These docker files are based on the [images from 84codes](https://hub.docker.com/r/84codes/crystal) and add the specific dependencies required for building the compiler (particularly `libllvm`, `libffi`) and are copied from the existing `alpine.Dockerfile` and `ubuntu.Dockerfile`. This results in up-to-date build images for `linux/arm64` which we're using for Aarch64 CI in crystal-lang/crystal#15007
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Our previous sponsoring for a CI server from Works On Arm has run out, so we need a replacement to run CI on aarch64 (see https://forum.crystal-lang.org/t/sponsored-servers-for-ci-on-aarch64-running-out/7099).
We might be getting some new sponsoring from Works On Arm, but that hasn't materialized yet. And we would like to get CI workflows running again.
https://runs-on.com is a service that provisions machines on AWS on demand to run workflow jobs.
It triggers when a job is tagged as
runs-onand you can configure what kind of machine you like this to run on. The machine specification could likely use some fine tuning (we can use other instance types, and theoretically 8GB should be sufficient). But that'll be a follow-up. For now we know that this works.We expect this to be more price-efficient setup than renting a fixed server or a CI runner service.
This patch also includes an update to the latest base image. The old arm base images were using Crystal 1.0 and some outdated libraries which caused problems on the new runners (#15005). The build images are based on the docker images from 84codes/crystal.
Thanks to @crohr for providing runs-on.com and helping with some issues we faced while setting this up.