I left GitHub for self-hosted Forgejo on a hardened NUC. The reason is digital sovereignty, not reliability outages. Here's the thinking and the architecture.
Its just a script that reaches out to my old mac mini that does the build in a VM. New VM each time. It was good enough for my purposes. The windows runner for Xamarin worked without issues in .net with windows runners. So just two physical boxes I would spin up on the fly. I thought it was more but that was it. I stopped using it a while back and just use linux for builds now since thats mostly my day job. I stopped doing other env work a bit ago.
OK I found out after I got home for lunch.
Its just a script that reaches out to my old mac mini that does the build in a VM. New VM each time. It was good enough for my purposes. The windows runner for Xamarin worked without issues in .net with windows runners. So just two physical boxes I would spin up on the fly. I thought it was more but that was it. I stopped using it a while back and just use linux for builds now since thats mostly my day job. I stopped doing other env work a bit ago.
Hope that helps!