Cloud compiling with Azure

Nov 20, 2020

I use Microsoft's Azure to do cloud compiles of the c++ engine for my new game. For Thimbleweed Park builds were hand compiled which took a lot of time and was very error prone. More than once I made DEBUG builds rather than RELEASE builds or forgot to change some debug setting back. It's nice to have builds compiled in the cloud and know they are from a pristine environment each time. I also don't have to keep a Windows machine (or a VM) around just to do a build.

Cloud builds are also critical for my (slow) move off the Mac to Linux (more on that later).

To compile the Windows build on Azure takes between 6 and 15 minutes which is crazy since I can compile the game locally in 1-2 minutes. Same with the Mac build. For me to get a new playtest or (more importantly) a dev engine build can take 15-30 minutes.

While waiting on compiles to fix a critical bug, I can't help but imagine Azure is running hundreds of jobs on some pour Windows machine stuffed in the corner of Steve Ballmer's old and forgotten office. I know this isn't true, but it's what it feels like when I desperately need a new engine.

I might give AppVeyor another try now they can do Mac builds. The .yml files for Azure and AppVeyor are annoyingly different so I've resisted doing a compile speed run-off.

On Azure you can pay for 2 jobs which does allow the Mac and Windows builds to compile concurrently, but what I really want is to run on less overloaded machines. It's not worth paying for a dedicated machine due to it being idle 99% of the time. Self-hosting is another option but it defeats the purpose of wanting to make maintaining machines "someone else's problem".

Ideally I would be able to get builds in less than 5 minutes.

Bitch. Bitch. Bitch.