Lazyploy is an open-source suite of tools designed to replace a plethora of custom batch files and deployment setups that I make for generally every project I work on. I wanted an incredibly simple way of cooking a new build of a UE4 project and have it automatically deployed to my test machines on my LAN without having to maintain batch files or a Jenkins server any time a hostname, project build rules, or when any other factor in scripted deployment changes.
A WIP video of the system is available here on my YouTube.
Lazyploy Server is the central server component of the Lazyploy suite of tools. It is a Node.js Feathers REST API backend server as well as a web frontend server. Lazyploy Server can govern, recieve, distribute, and monitor builds of UE4 projects. The only limit to how much it can store is the size of the storage device it is installed on.
Lazyploy Launcher is the ‘engineer’ component of Lazyploy. Instead of creating and maintaining a set of batch files per project, Lazyploy Launcher aims to consolidate batch operations such as launching clients, cooking, and deploying of builds. It runs as a standalone program built against your UE4 Engine source and runs on Slate. It also contains a Session Frontend tab for easy remote-monitoring of other UE4 instances.
Lazyploy Watcher is the remote ‘build runner’ component of Lazyploy. Its goal is to automate build updating on targets to avoid manually copying development builds to test servers through Samba Shares, SMB, FTP, or pushing builds through the Steam Pipe. When working with Server code, it can be really convienent to spin up local tests for cooked builds outside of any pre-existing build pipeline, for example, relying on Steam Pipe builds to test minor changes in code just so test servers an pull down a patch can take a lot of time if you have the storage and the speed for simply downloading whole new builds over a LAN. Its designed to keep WindowsServer and LinuxServer builds always online and restart them in-case of a crash, but it could also be used to keep client builds running as well.