We use the provided build graph for our automated builds, and we’ve also recently switched to Horde. I noticed that the artifacts in Horde for Development contained Test configuration binaries, and vice versa.
On closer inspection, the Build Graph does not stage configurations to separate directories. This makes a lot of sense for content, but nothing seems to separate the binaries after this.
Does Epic just archive all binaries alongside each other? Or is there another way of separating the binaries package I’m missing?
Steps to Reproduce
Run `RunUAT.bat BuildGraph -Script=“Engine\Build\Graph\Tasks\BuildAndTestProject.xml” -Target=“ProjectName Package Win64” -set:WithWin64=true -set:WithDevelopmentTargets=true -set:WithTestTargets=true -set:WithDevelopmentPackages=true -set:WithTestPackages=true`
This results in two directories in Saved/StagedBuilds/Packages for Development and Test, however both folders contain `ProjectName.exe` and `ProjectName-Test-Win64.exe` binaries.
This is more a problem when we create artifacts in Horde. We package for Development and Test configurations, and we get a Windows Development and Windows Test artifact but they both contain Development AND Test binaries. Is this true for Epic’s builds too? It means that when uploading to Steam for example, we need to prune the binaries we don’t want, which is fine but feels like it should be unnecessary.
I haven’t tried all platforms, but from those I’ve tried it only happens for Win64 so it seems like a bug in the stage/package step for Win64 to me. Android works as expected, you get folders containing only the appropriate APK for the configuration.
If you are in 5.6 and older, BuildAndTestProject does package in the same folder indeed. But since 5.7 the configurations are packaged and publish to different folders.
In 5.6 the command used explicitly ask all configurations to be archived in the same directory.
BuildAndTestProject is not a feature. It is what we internally use and it is shared to the public as is.