Automated build system

#1
SVT runs (though it's not enabled right now), an automated build system for CasparCG client and server.

This needs to be updated due to changes in the build-scripts, so it's a good time for us to discuss how we can make the automated build system better.

Currently it uses Jenkins, a system that I personally know very well, but some other systems have been suggested such as Travis and appveyor.

I'd like to start a discussion about this, does anyone have ideas or experience with automated building? We need to build on Windows, Linux and MacOS, we'd like to use Docker containers as much as possible.

I don't work for SVT, so I can't decide their setup, but the company I do work for, we are setting up our own build system, which we will produce automated builds of CasparCG server with.

Re: Automated build system

#2
I was about to post a response on the github issue, but it would make sense to do it here instead.

I haven't really used jenkins myself, I use gitlab-ci for most of my things (including my own caspar builds) and travis if the project is on github. So I have plenty of experience using tools like these.
Can docker be used to build this on mac and windows? I know both platforms support docker but that is as far as my knowledge on it goes.

For gitlab-ci I have to host my own build servers, so I know that it can take a bit of work to keep them happy (especially windows), and that there is some maintenance involved, which we should be able to remove by using something completely cloud based. And by having the ci scripts/config in the repo, it means that any changes required can be done in the PR, making it easy to keep it up to date and working.

It would be good to set up something that can be running long term with little maintenance, so a key question there is how long is your company going to be producing builds for, and will these be to replace the svt/official builds or just of your branches/repo?
Also I like the idea of being able to build any branch that gets pushed, which I know that these ci services do by default (last I checked it is difficult in Jenkins especially if the build scripts are different) I am using this behaviour heavily for my builds and PRs