Moving to fully automatic builds
As we were moving forward with our recognition and tracking SDK, we recently installed a fully automatic build system using Gitlab. We now run almost all builds of all packages for the platforms automatically. This includes libraries for Windows, OSX and Linux. At the same time, the pipeline also builds everything required for iOS and Android.
Building the overall system with all the depending libraries takes multiple hours. The number of individual builds amounts to about 50 right now. This also includes the creation of complete Unity packages for super-easy integration into Unity. An FTP server is used to store temporary build results to roll back any changes and track down errors.
For the individual builds, we have multiple virtual machines running on a Linux server. The gitlab-runner spawns multiple Windows and OSX builders in virtualbox on demand. The Linux and Android builds are done in Docker containers. It also builds all required components for our Kubernetes setup.
Screenshots of the Fully Automatic Build System
Here are some screenshots from our actual build pipelines. The amount of code, the number of features and individual libraries has grown so fast and it became pretty cumbersome to build them manually. Now we can spend more time on the implementation of individual features, and don’t waste any time on build-management any more.