A feature request… I don’t believe there is currently a linux continuous integration server (based on the fact that the head consistently doesn’t build under linux). Could there please be one?
Having worked places where everyone carries on when someone breaks the build, I know first hand how much being careful with commits slows things down. But the problem is the Linux build is currently very unstable. So I’m constantly updating from the trunk in the hopes that you’ve solved my problems. It would be much appreciated if you could show us linux people a little bit of extra love for the next few releases until things settle down. I really want to use Unreal Engine but it’s very painful at the moment.
So people are allowed to push code that doesn’t even compile locally on their machine? It seems to me master is broken a lot of the time. Are there no continuous integration build servers that automatically email people when they have broken the master build?
There is a CI system in place, although it doesn’t run compile after each commit (which are too numerous for that), but instead runs using certain rules that balance between the number of batched commits vs. time needed to run a particular job. This often results in CIS notifications coming out relatively late (e.g. after a few hours).
It is generally expected that people do NOT check in the code that breaks the build, however, relatively few people have the ability (and time) to compile their change against all the 9 or so platforms that the engine runs on, and in all configurations (headless server, client only, standalone game, editor, debuggame editor etc) - even with Incredibuild this takes time, and builds for some platforms cannot (or just haven’t yet) be reliably parallelized, so committing a change that breaks a platform you are not working on is relatively common.
However, builds of each branch are regularly promoted (i.e. tested for usability issues) and non-code developers (authoring blueprint or simply the content) are expected to use promoted builds only. If QA cannot determine a usable build within certain period (usually 48 hours) - i.e. all builds are broken, either cannot be compiled or crash, or have regressions in functionality - then the branch in question is locked down and the only commits allowed are those that deal with the identified problems.