Commit Graph

49 Commits

Author SHA1 Message Date
Wes Hunt
e2783d981e Add additional telemetry to TempStorage. Moved TelemetryStopwatch out of CommandUtils. Added DateTimeStopwatch to make timing things easier.
[CL 2646031 by Wes Hunt in Main branch]
2015-08-05 22:16:45 -04:00
Josh Markiewicz
f8d83447e1 #Integration FN->Main from CL#2642868
Engine Source changes

[CL 2645403 by Josh Markiewicz in Main branch]
2015-08-05 15:54:57 -04:00
Wes Hunt
8a216453ea SetUATLocation uses the EntryAssembly instead of the executing assembly.
[CL 2645374 by Wes Hunt in Main branch]
2015-08-05 15:31:36 -04:00
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
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
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
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
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
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
Ben Marsh
9e31e87ce0 Explicitly pass the engine root into ReadAvailablePlugins().
[CL 2632416 by Ben Marsh in Main branch]
2015-07-24 13:23:11 -04:00
Michael Trepka
d7c5e90831 Merging CL 2632258 - Mac codesign fixes
[CL 2632260 by Michael Trepka in Main branch]
2015-07-24 10:59:55 -04:00
Peter Sauerbrei
e57bbb9483 fix for build machine failure when copying DDC stats when running BuildDerivedDataCache commandlet
[CL 2631631 by Peter Sauerbrei in Main branch]
2015-07-23 19:06:45 -04:00
Peter Sauerbrei
dc1d815f84 refactored the logging system for UAT/UBT to be more like UE4
we now use an enum similar to UE4 with Fatal, Error, Warning, Display, Log, Verbose, and VeryVerbose
Log will only go to the log file unless -verbose is passed on the command line
reduced some of the output from UAT to be Log only

[CL 2631062 by Peter Sauerbrei in Main branch]
2015-07-23 14:51:46 -04:00
Bob.Tellez
09e658827a [INTEGRATE] Change 2627031 by Bob.Tellez@Z2434 on 2015/07/21 12:06
#UE4 Fixed a problem where the wrong constructor was matched for BuildPatchToolStagingInfo when supplying two or three strings at the end of the arguments list since the last argument was optional.

[CL 2630790 by Richard Fawcett in Main branch]
2015-07-23 12:35:01 -04:00
Ben Marsh
9989daccfa [INTEGRATE] UAT: Add support for cross-app promotion
#codereview Richard.Fawcett

[CL 2629897 by Ben Marsh in Main branch]
2015-07-22 20:02:21 -04:00
Wes Hunt
7ff08138f9 Move Robust_XXX methods into InternalUtils, since it is called outside of TempStorage.
#UEB-307

[CL 2629371 by Wes Hunt in Main branch]
2015-07-22 15:21:40 -04:00
Wes Hunt
c1672d4beb Remove Remove some redundant and unused functions;
* InternalUtils::ExecutingAssemblyLocation
* InternalUtils::ExecutingAssemblyDirectory
* InternalUtils::ExecutableVersion
* CommandUtils::WriteToFile (one overload not used)
* CommandUtils::ExeFilename
* CommandUtils::ExeDirectory
* CommandUtils::CurrentDirectory
Added:
* Tools.DotNETCommon.AssemblyUtils::ExecutableVersion

[CL 2629222 by Wes Hunt in Main branch]
2015-07-22 14:00:30 -04:00