Right now, our build infrastructure is not properly set up. We're using the free GitHub Runners and an external caching mechanism to be able to perform builds. While we're waiting for the Eclipse Webmaster to provide larger GitHub Runners (needed for Yocto), we can use the time to set up automation scripts for setting up the needed infrastructure.
This would also help other teams to setup a Yocto-based build infrastructure and reproduce it on their end.
The rough idea is:
Have the basic infrastructure (GitHub Actions Runners and/or plain BitBake workers) on cloud-liked infrastructure (e.g. ephemeral VMs, docker, kubernetes etc.). Throw-away VMs is a good concept to get reproducable builds and minimize side effects.
Have the persistent infrastructure on separate, attachable storage (e.g. a cloud or local storage attached to the VMs on demand). As BitBake/Yocto requires large amount of disk, and it's very expensive to transfer that all the time, if makes much more sense to put branch workspaces into specific network attached storage or VM disk storage and attach it to workers on demand.
Have the team infrastructure setup once, e.g. setup a remote sstate-cache, hash equivalence servers etc. per team/orgunit and have the Terraform setup as a public repository which can be reused by others.
A few requirements which come to my mind:
independent of actual cloud provider, so some sort of abstraction should be possible (e.g. azure vs openshift)
standardized way to setup devops environment (eg sth like terraform would be more appropriate than bash scripts)
storage and build needs to be supported long-term (e.g 10-15 years) with the ability to update software components continuously with low maintenance costs
Right now, our build infrastructure is not properly set up. We're using the free GitHub Runners and an external caching mechanism to be able to perform builds. While we're waiting for the Eclipse Webmaster to provide larger GitHub Runners (needed for Yocto), we can use the time to set up automation scripts for setting up the needed infrastructure.
This would also help other teams to setup a Yocto-based build infrastructure and reproduce it on their end.
The rough idea is:
A few requirements which come to my mind:
This is a conceptual discussion / poc.