
Azure is not particularly special, but we chose it primarily because of the strong. You don’t have to figure out how to run a Jenkins instance securely on the public web - it just works. Why Azure and Google Cloud?Ī CI like Azure means that all of our build artifacts and logs are easily accessible on the web. It’s not a common tool in the game development sphere, but is incredibly useful. If you’re not familiar with docker, I’d suggest reading a bit about it. This means we can load a clean machine for every build, essentially for free. It uses clever caching to “boot” a new machine environment in just seconds, even if the docker image is many Gb of data. You can very quickly boot up a different cloud instance if you need extra build capacity, or you want to try out a more powerful machine.

You can simply boot up and exact replica of the build machine on your local computer to debug. If your change works on the build server, then it’s a local issue, end of story.ĭocker makes it incredibly easy to debug issues.

Docker gives us the peace of mind that our builds are clean. In the past I’ve maintained build servers that maintain state between builds, and inevitably these servers drift into a bad state. We use docker because it makes it easy, and very quick to boot up a clean environment for our builds.
