Hello!
We are currently working on deploying preflight to our studio as a whole. To optimize for compute usage we are thinking of having many different types of Preflights. Currently the thought is we will have 4 different kinds of preflights, these would all be inserted as definitions in the SubmitTool
- Code Only - If only CPP and Header files change we just build Linux Server and Windows Client and call it good
- We build the Editor when we make PCBs for our developers. This happens each time a Developer commits code, building editor here seems like a waste of compute but maybe we should
- This wont catch things like removing UFUNCTION on a blueprint callable function. I was thinking of doing a blueprint compile as part of this step but this is way too slow on our project
- Content Only - IncrementalCook of Window Client.
- Code + Content - Build & Cook - Incremental Cook + Build of Changelist
- Code + Content + Stage - Incremental Cook + Build of Changelist (Client & Server) as well as staging and archiving the preflight artifacts
Each of these gets progressively more expensive compute wise. Is this a good approach to optimize our preflights to do the necessary amount of work required to validate a change. Another approach would be to always #3 or #4 and do the full process for every preflight, but this seems overkill. Would be good to have some insights on what you guys do on your projects.