What is the proper way to set up a build farm
Hello!
Sorry to bother people with noob-level questions, but I’m currently learning how to set up a ROS build for work and am trying to compile the complete process into one compehensive step-by-step guide, but there are some points that are unclear and I’m not sure if I even understood the whole process correctly to begin with.
Could someone please help me out in pulling together the various information?
(Q1:) The documentation of buildfarm_deployment states that buildfarm is "based on Ubuntu 16.04 Xenial", but it is unclear if that is the OS that the machines (physical servers) need to have or if that is the Docker environment that will run on them after installation. Is there a required OS for the physical servers?
(Q2:) The ROS2 CI tutorial on index.ros.org describes a completely different process, but sometimes seems to use some of the same scripts and repos. Is this the "new way" for ROS2? Is the process the same for ROS1 and ROS2?
(Q3:) Why is it necessary to fork buildfarm_deployment_config and buildfarm_config? As far as I can see it will later just be cloned during deployment or accessed via Python urllib. Is this just for convenience when deploying many build farms on a reguar basis so we don’t have to edit the config on the machine itself? Shouldn't it be possible to just clone or download the *_config repos and edit the settings locally?
(Q4:) The whole process (including AWS servers, repo-forking, Docker, and Puppet) seems quite extensive for setting up one build farm. I seems like this is intended for people who intend to deploy build farms on a regular basis. Is it even recommended to follow this guide when you build just one build farm?
I’d be happy if someone with experience could help me out with these issues.
Thank you!