Commit Graph

1254 Commits

Author SHA1 Message Date
Wes Hunt
585af51d15 TempStorage Refactor
GUBP High Level
* Temp Storage is zipped into a single archive per node now. This results in ~75% reduction in temp storage usage and network traffic, not to mention the per-file overhead.
* Temp Storage is in P:\\Builds\\{Game}\\TmpStore instead of P:\\Builds\\{Game}\\GUBP (to facilitate easier cleaning of this new structure).
* Temp Storage nodes are in subdirectories of {Branch}\\{CL}\\{NodeName} now instead of a flat directory structure that was hard to manually sift through.

GUBP Mid Level
* Removed -Store= and -StoreSuffix= test parameters.
* Added -NoZipTempStorage parameter to turn off temp storage zipping if necessary.
* Created GUBP.JobInfo class that collects info about the job as a whole to be passed around by GUBP. Mostly used by any code that need to interact with TempStorage.
* Created TempStorageNodeInfo that describes the necessary parameters to find the temp storage location for a node.
* Fully XML commented TempStorage.cs, and commented internals all major functions.
* Added a bunch of telemetry data for storing, retrieving, and cleaning shared temp storage.

UAT Mid Level
* Fixed a bug in Ionic.Zip that make ExtractAll() not work on Mono, checked in new DLLs.
* Added UAT parameter -UseLocalBuildStorage that allows you to test build storage stuff completely locally. Writes to Engine\\Saved\\LocalBuilds\\...

GUBP Low Level
* Refactored some GUBP startup code so temp vars would be limited in scope. Makes it easier to track the impact of refactoring these things.
* CullNodesForPreflight is only called for preflight builds.
* Refactored TempStorage.FindTempStorageManifests to use new TmpStore structure and harden the brittle string/path parsing it was doing. See the new TempStorage FindMatchingSharedTempStorageNodeCLs().
* Refactored TempStorage Saving and Loading to use XDocument instead of older XmlDocument. Removed a bunch of redundant checks.
* Use StripBaseDirectory and MakeRerootedFilePath to remove the brittle directory manipulation code. Directories no longer require a '/' at the end.
* Removed a few redundant caching layers in cleaning temp storage that try to ensure we don't clean a folder twice. None of them were necessary.
* Removed unused single-threaded copy code from temp storage.
* Updated Temp Storage unit test, and fully commented the logic behind it.

UAT Low Level
* UAT top level exception handler is now a single log line now to help parsers find the error.
* Removed several uses of FormatException as it doesn't display the entire exception chain, and is not as good as the default exception formatter.
* Removed ExceptionToString as it used FormatException, which was not a good precedent.
* Fixed several cases of exception propagation that was not properly chaining the inner exception.
* Refactored ThreadedCopyFiles to use Parallel.For because it was just as fast (if not faster) and much simpler to maintain.
* Removed the suffix from Robust_FileExists_NoExceptions because it's sole purpose in life WAS to throw exceptions!
* Added a bunch of XML doc comments to CommandUtils.
* Modernized some container manipulation and iteration to use IEnumerable and extension methods more appropriately.
* Added several @todos for other minor cleanup stuff that should happen eventually.
* Fixed some uses of String.Compare to use invariant culture.
#codereview:ben.marsh

[CL 2644846 by Wes Hunt in Main branch]
2015-08-05 10:22:11 -04:00
Ankit Khare
08ec877c77 Always copy web server during packaging itself too for html5. #jira UE-19556
[CL 2643992 by Ankit Khare in Main branch]
2015-08-04 16:19:39 -04:00
Timothy Reynolds
fae6a68b46 Added missing Source folder to zipping filter list.
UE-19560

[CL 2643666 by Timothy Reynolds in Main branch]
2015-08-04 13:36:36 -04:00
Ben Marsh
3fb12c7ee6 Call out segmentation fault errors (and other signals) when the editor commandlet terminates abnormally, as well as printing out the exit code.
[CL 2643513 by Ben Marsh in Main branch]
2015-08-04 11:25:24 -04:00
Wes Hunt
b54e1e418b #jira UE-19582
Re-added ambiguous Automation ctor that was removed in CL2605826. It is now marked with [Obsolete], and will be removed in the future. CL2643334 already fixed the instances that were mistakenly being routed to the varargs version.
#codereview:richard.fawcett, leigh.swift, ben.marsh

[CL 2643482 by Wes Hunt in Main branch]
2015-08-04 11:05:28 -04:00
Richard Fawcett
95a659a830 Fix up calls to construct AutomationException(string Message, Exception Ex), as this overloaded constructor has been removed.
The overloaded constructor was removed in CL 2605826, so all existing calls are being interpreted as AutomationException(string Message, object[] Params), causing runtime failures when Message does not contain a replacement placeholder "{0}", and potential unwanted behavior if it does.

#jira OPP-3951
#codereview Wes.Hunt, Leigh.Swift

[CL 2643334 by Richard Fawcett in Main branch]
2015-08-04 09:33:03 -04:00
Ben Marsh
9daf29ce73 Prevent using the dedicated network share for ShooterGame from now on. Will be removed in the next few days.
[CL 2643301 by Ben Marsh in Main branch]
2015-08-04 08:47:24 -04:00
Ben Marsh
dbde9c8964 Store the full list of input and ordering dependenices for each node, rather than just the ones which are referenced explicitly.
[CL 2641487 by Ben Marsh in Main branch]
2015-08-02 11:30:07 -04:00
Ben Marsh
28771d37c4 Fix a couple of annoying variable names with spelling mistakes ("FullNamesOfPseudosependencies" and "OrdereredToDo")
[CL 2641397 by Ben Marsh in Main branch]
2015-08-01 16:05:47 -04:00
Ben Marsh
d30033495c Remove some GUBPNode dependencies from GUBP.cs.
[CL 2641394 by Ben Marsh in Main branch]
2015-08-01 15:55:12 -04:00
Wes Hunt
0fff2b2d6f Added additional build telemetry when storing to shared temp storage. Outputs the total file count and total size in bytes.
* ie: UAT.StoreToTempStorage.5.1024
* this can be pulled about by downstream telemetry to measure temp storage performance across the system, and how it's being used in general.

Misc
* Fixed CommanUtils.WriteToFile to add a Newline to match old behavior.
* Added a new feature to the telemetry stopwatch to allow setting a dynamically generated string when finishing the timing.
#codereview:ben.marsh

[CL 2640845 by Wes Hunt in Main branch]
2015-07-31 15:51:24 -04:00
Wes Hunt
9f10de8554 Remove unnecessary var
[CL 2640726 by Wes Hunt in Main branch]
2015-07-31 14:49:46 -04:00
Ben Marsh
4750f0a876 Fix game aggregate nodes being added after the translation to new nodes, and causing game triggers to fail.
[CL 2640237 by Ben Marsh in Main branch]
2015-07-31 09:42:45 -04:00
Peter Sauerbrei
7e009894ea fix for invalid option when code signing multiple executables at once
#uat
#codereview ben.marsh, justin.sargent

[CL 2639159 by Peter Sauerbrei in Main branch]
2015-07-30 14:55:28 -04:00
Ben Marsh
79351a008c Remove build.properties. Applications can now use Build.version for structured version information; timestamp was only used by the launcher, so it now uses its own.
[CL 2638907 by Ben Marsh in Main branch]
2015-07-30 12:24:22 -04:00
Ben Marsh
047fafaf98 Add a -ScriptsForProject parameter to UAT, which causes it to only compile and load scripts for a certain project. Fixes issues when only syncing source for one project, as is typical in UGS workflows. Always pass that parameter from the editor, and always compile UAT when running from a non-installed, non-promoted build.
#codereview Bob.Tellez

[CL 2638899 by Ben Marsh in Main branch]
2015-07-30 12:15:19 -04:00
Peter Sauerbrei
36d0ab7a67 UE-17454 - fix for cook hang on mac
we now don't write the same message twice to the output window
#mac

[CL 2638743 by Peter Sauerbrei in Main branch]
2015-07-30 11:01:02 -04:00
Bob Tellez
ad8874b794 [AUTOMERGE]
Creating an app bundle when archiving for mac is now optional.

--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2637748 by Bob.Tellez on 2015/07/29 17:46:21.

[CL 2637750 by Bob Tellez in Main branch]
2015-07-29 17:47:13 -04:00
Wes Hunt
5381c65593 Convert to a better exception class and error message. Most tools assume NotImplementedException means something very specific.
[CL 2637669 by Wes Hunt in Main branch]
2015-07-29 17:04:27 -04:00
Daniel Lamb
8ce5ac8b7f Fixed issue with paking DLC when there is no engine directory.
[CL 2637638 by Daniel Lamb in Main branch]
2015-07-29 16:48:09 -04:00
buildmachine
ce42430211 Code documentation from CL#2636592
[CL 2636758 by buildmachine in Main branch]
2015-07-29 07:47:34 -04:00
Wes Hunt
8211f9a97c Restor fallback for UAT trying to mount an NFS share from a 32-bit process. This requires a 64-bit OS to work, but it's actually generally fine for UAT to run in 32-bit. We now simply log the bit-ness of the process on startup for diagnostics.
#codereview:ben.marsh,richard.fawcett

[CL 2635301 by Wes Hunt in Main branch]
2015-07-28 09:18:24 -04:00
Peter Sauerbrei
42cc6d1f4d real fix for logging verbosity.
#uat

[CL 2634621 by Peter Sauerbrei in Main branch]
2015-07-27 17:28:09 -04:00
Wes Hunt
14b5318a8c Get UAT running as a 64-bit process again.
* As of .NET 4.5, the default for Any CPU is to "prefer 32-bit process", and you need to explicitly turn this off to require the process be run as 64-bit.
* See http://blogs.microsoft.co.il/sasha/2012/04/04/what-anycpu-really-means-as-of-net-45-and-visual-studio-11/ for details.
* UAT will now assert when Environment.Is64BitProcess is false on startup, as we essentially require 64-bit for certain scripts, and that's how we ran it before upgrading to .NET4.5.
* Also set default optimization options for the project, which were changed at some point.
* Finally, rolled back CL#2633880, which was trying to work around the fact that UAT was running 32-bit.
#codereview:richard.fawcett, ben.marsh

[CL 2634273 by Wes Hunt in Main branch]
2015-07-27 14:40:30 -04:00
Richard Fawcett
84c56fdf2c UAT: Add support to searching C:\\Windows\\Sysnative when exe can't be found in C:\\Windows\\System32
#codereview Ben.Marsh

[CL 2633880 by Richard Fawcett in Main branch]
2015-07-27 10:59:05 -04:00