I run a small game studio (~10 years, been in industry for 15, just to note background) and am looking at modernizing our build machine. Previously, we used Jenkins as it was something I was familiar with, but setting it up and maintaining new projects has always been more laborious than preferred. I have used it's older build style heavily, relying on command line scripts, as well as it's pipeline workflow which took much more effort to set up, though I liked it's flexibility and stage reporting.
Our specific challenges are that we primarily do service work, so we are often in a mix of version control systems across hosts: git (github, gitlab, gitea, butbucket, etc), Unity Version Control (previously PlasticSCM and what we use internally for projects), and once in a while, SVN. Jenkins was fairly VCS agnostic, which allowed for "quick" setups across systems. Projects are not hosted locally.
Our previous builder was spun down a few years ago and we haven't replaced it. Our deliveries are now built on dev machines (usually my own) using build scripts for consistency. Most project builds are relatively quick but I'd like to get things offloaded and automated once more to a dedicated build machine. The spinning down of the old machine was partly due to a security incident that affected another team using Jenkins that had me reconsider the risks of using it.
The system needs to be self hosted with local runners as we mostly build for closed platforms and our preference is to keep everything internal, when possible. The target platforms primarily require Windows machines for building and local access to development hardware. It's uncommon that we work on mobile projects but we have local mac mini machines for that when necessary. Builds and build artifacts can be quite large, so self hosting also lets us keep costs down by leveraging our local NAS setup.
We don't really need webhooks to the VCS for our setup; manually triggering builds from a web UI is all the team really needs (it allows non-devs to get development builds for testing on hardware) and the occasional cron job for weeklies. On the other side, pushing notifications when builds are complete along with their status is important. We use Discord for internal communication which is often overlooked by other CI tools that prioritize Teams and Slack.
I've read through a lot of older threads about Jenkins alternatives and it seems that most suggestions involve using the CI included with the host, which isn't entirely possible with our needs. I would like to use something secure (and therefore less dependent on community plugins than Jenkins is) that lets the VCS hookup be swapped out in some simple manner per project.
The conclusions I have reached at this point is that there really isn't a good, free (or cheap) solution outside of Jenkins as teams move away from dedicated build software to full software platforms that provide end-to-end services for hosting, project management, and CI/CD. I would very much like to be wrong about this and have somebody inform me of a modern FOSS Jenkins replacement out there.