-
Notifications
You must be signed in to change notification settings - Fork 3k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement build system using self-hosted aarch64 runners, GitHub needs
jobs feature and reusable workflows
#1703
Implement build system using self-hosted aarch64 runners, GitHub needs
jobs feature and reusable workflows
#1703
Conversation
@manics I forgot to mention you initially. |
I gave a bit more thought and I'm going to reconfigure my runners - I'm going to have two runners with 2 CPU each. |
It was with 3 runners with 1 CPU: 1h 38m 19s The best we can get with this scheme is around 1h 11m. This is actually something we might want to have, because in master branch pushing to registry will also take some time and we have only 2 runners, which means we're not doing it the best way we can. |
needs
jobs feature and reusable workflowsneeds
jobs feature and reusable workflows
@mathbunnyru Have you thought of running them on a Mac Mini (M1, 2020)? I am hosting GitLab Runners in a Debian VM on a Mac mini (M1, 2020) to build my |
I thought about running aarch64 builds on M1 Mac, but there is no free M1 Cloud Mac, as far as I know. Currently, 2 Oracle VMs with 2 CPUs each will be free for me. |
No, you are not.
Yes. It was a $900 investment. |
To be honest, I don't think it would be a good idea to use personal equipment in a very popular open-source project. But if something happens to the person who owns the hardware or he decides to stop providing it as a service or the hardware breaks, it would be quite difficult to make this project work again. |
There were some reviews in the past, so I'm going to merge this when this passes. |
AFAIK, everything finally works as expected 🎉 |
I was able to enable building Of course, this is true with the assumption, that self-hosted runners are only working for one build (because there are only 2 of them right now). |
Wow @mathbunnyru I have been away as I am stretched with work but kudos on this major refactoring. You've done an incredible work 🙂 thank you |
I've decided to implement our build system from scratch.
Ideas, that came to my mind:
build-x86-minimal-notebook
, but we can easily write dependencies between themaarch64-
prefix for all arm buildsImplementation details:
docker.yml
workflow. This file can be seen as a simple config file of build dependenciesneeds
feature of GitHubactions/upload-artifact
andactions/download-artifact
to pass the image between jobsTODO:
buildx
Makefile parts (or event the Makefile itself)aarch64
ormake
commandsFix: #1407
Fix: #1530
Fix: #1402
Fix: #1401
Fix: #1203
Supersedes: #1631
Fix is no longer needed for: #1539
Upsides:
sudo rm -rf
to maximise space, because we will have a small amount of images in the local cache (hopefully)mamba
execution on multi-CPU machinesDownsides:
docker save/load
anduploading/downloading
artifacts is quite slow.aarch64-
prefix for every arm tagdocker buildx
and multi-plaform in Makefile