Over the last few years CircleCI and Travis and the like have become really popular among the developer community. And for good reason: These are fantastic solid platforms for running Continuous Integration. They scale very well, and are reliable reliable.
But if you're a small organization using a SaaS based CI can both be expensive, and also not provide the level of customizability you might need as an organization.
Jenkins is one of the most well known Open Source CI platform. Setting up your own CI server can feel intimidating, but I'm here to tell you that it's a lot more easier (and cheaper) than you think.
First understand that unlike your production servers, you don't need 99.9% uptime for your CI servers. If your CI servers go down for a few minutes, it can pick up on where it left when it comes back up. My annoy a few developers, but it'll still get the job done.
So unlike your production servers, I suggest you find the absolute cheapest servers you can find among all the cloud providers. Actually we suggest going one step further: we've worked with many companies and we've found for small companies it might actually be advantageous to run your CI server on an off-the-shelf desktop running in your office. You'll get a lot more CPU power at a lower price, and as I said before: you don't need the reliability of running in a datacenter.
You can also keep your Jenkins primary node in the cloud, and keep your workers as desktops in your office. This way you can get the best of both worlds.
One of the reasons we went this route was for running Android Emulators. Sure, we could've used Firebase Test Lab, but we've found that it was faster for us to spin up our own emulators.
... and Macs
And of course, if you have Mac specific jobs (especially for iOS) it is a lot cheaper to get a Mac Mini and connect it as a Jenkins worker than to get a Mac in the cloud.
We can help set up a Jenkins server for you. Of course, we'll also integrate Screenshotbot so you'll have a fully functioning testing solution. We've worked with big and small companies and have a very thorough understanding of the testing needs of different organizations.