Commit Graph

457 Commits

Author SHA1 Message Date
james hopkin
d090d864b0 [robo] Reinstated all tests, since timing out is actually a config issue
#ROBOMERGE-OWNER: james.hopkin
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20684695
#ROBOMERGE-BOT: (v968-20684695)
#ROBOMERGE-CONFLICT from-shelf

[CL 20684783 by james hopkin in ue5-main branch]
2022-06-16 05:06:04 -04:00
james hopkin
49270a7c39 [robo] Only run three of the target tests
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20684186
#ROBOMERGE-BOT: (v955-20579017)

[CL 20684235 by james hopkin in ue5-main branch]
2022-06-16 03:53:23 -04:00
james hopkin
6ab2ae4206 [robo] Increased tests timeout some more
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20671162
#ROBOMERGE-BOT: (v955-20579017)

[CL 20671172 by james hopkin in ue5-main branch]
2022-06-15 11:59:41 -04:00
james hopkin
6c3a964c22 [robo] Increase tests timeout
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20670970
#ROBOMERGE-BOT: (v955-20579017)

[CL 20671024 by james hopkin in ue5-main branch]
2022-06-15 11:52:47 -04:00
james hopkin
c76070777f [robo] Support files for previous commit
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20670297
#ROBOMERGE-BOT: (v955-20579017)

[CL 20670381 by james hopkin in ue5-main branch]
2022-06-15 11:17:19 -04:00
james hopkin
ec5525a522 [robo] Improved stomp testing and fix for test branch creation
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20668703
#ROBOMERGE-BOT: (v955-20579017)

[CL 20668706 by james hopkin in ue5-main branch]
2022-06-15 09:04:10 -04:00
james hopkin
de05f4484d [robo] Functional tests equivalents for the target unit tests, including plus additional specific skip testing
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20668006
#ROBOMERGE-BOT: (v955-20579017)

[CL 20668013 by james hopkin in ue5-main branch]
2022-06-15 07:37:31 -04:00
james hopkin
1c3ad75d93 [robo] Restored skip fix, improved tests to follow
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20667994
#ROBOMERGE-BOT: (v955-20579017)

[CL 20668007 by james hopkin in ue5-main branch]
2022-06-15 07:36:51 -04:00
james hopkin
efad329306 [robo] Changed variable name that was confusing me
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20667816
#ROBOMERGE-BOT: (v955-20579017)

[CL 20667817 by james hopkin in ue5-main branch]
2022-06-15 07:01:41 -04:00
james hopkin
426ab61cd1 [robo] Reverted incorrect skip fix
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20667796
#ROBOMERGE-BOT: (v955-20579017)

[CL 20667799 by james hopkin in ue5-main branch]
2022-06-15 06:59:25 -04:00
james hopkin
3affa7c200 [robo] Don't consider skip targets when calculating implicit routes
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20667198
#ROBOMERGE-BOT: (v955-20579017)

[CL 20667216 by james hopkin in ue5-main branch]
2022-06-15 05:43:07 -04:00
james hopkin
219caa8354 [robo] More skip unit tests
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20592904
#ROBOMERGE-BOT: (v955-20579017)

[CL 20592910 by james hopkin in ue5-main branch]
2022-06-10 05:58:30 -04:00
aurel cordonnier
943f1f9771 Added safety checks to backout command:
- check if the CL desc indicates that it was a robomerge or a cherry pick (ushell or p4v)
- check that the backout is of an edit operation (edit/add/delete) and not an integration
- check that the CL doesn't contain objeect or engine version files
- throw a dialogue if any of the above checks considers the backout 'unsafe'

Fixed revert exception when the backout fails due to files being checked out (also added warning similar to P4V's undo operation)

#preflight n/a
#rnx
#rb Marc.Audy, Ben.Marsh

[CL 20581794 by aurel cordonnier in ue5-main branch]
2022-06-09 14:30:36 -04:00
james hopkin
e03da032f4 [robo] Fixed blockAssetFlow property name in help page
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20579017
#ROBOMERGE-BOT: (v954-20466795)

[CL 20579134 by james hopkin in ue5-main branch]
2022-06-09 12:35:23 -04:00
Josh Adams
c676492e66 - Reverted the P4VUtils changes that needed dotnet6, since some users don't have it installed, and we can't use the dotnet checked in to p4, since P4VUtils are not tied to any stream
#rb none
#preflight skip

[CL 20537858 by Josh Adams in ue5-main branch]
2022-06-07 10:38:06 -04:00
paul chipchase
67a2b94f34 P4VUtils will no longer fail to remove commands that contain quoted string
#rb Sebastian.Nordgren
#rnx
#preflight 62985fe89907cbadbaa25855

- This is a follow on fix from 20451429, although that solved the problem of duplicate registered commands due to differing DotNet locations it did not solve a problem introduced in 20248689 caused by quoting the command argument.
- If the path in the command element does get quoted due to containing a space in the file path then FileReference will fail to parse it as RemoveCustomToolsFromNode intended and the comparison between the Command element and the DotNet location would always fail.
-- This meant that a newly published version of the tool would replace the old commands, but when published a second time would start to register duplicate commands.
- The simple solution is to try and strip the quotes (if any) before creating the FileReference for comparison.

[CL 20466696 by paul chipchase in ue5-main branch]
2022-06-02 04:15:10 -04:00
paul chipchase
ff35395386 Fix P4VUtils failing to remove its old commands when running an install
#rb Josh.Adams
#rnx
#preflight 62975f7c101592b805fa7cb9

- When UGS invokes the tool to be installed, it will call 'P4VUtils.exe install' which meant that getting the process path as the dotnet path would return the exe
- However previous versions of the tool were creating a path to dotnet.exe to use as the dotnet path
- When removing the old commands before installing the new ones, one of the filters is to check the dotnet path of the command and make sure that it matches the current one
- So if the older version was using a path to dotnet.exe and the newer version, the p4vutils.exe, they won't match and the old commands won't be removed, so when the new ones are added we end up with duplicates.
- For now the easiest fix is to go back to the logic before change 20248689, so on windows we make sure that we find dotnet.exe so it will match.

[CL 20451429 by paul chipchase in ue5-main branch]
2022-06-01 08:57:36 -04:00
james hopkin
b920dd0d03 [robo] Removed accidentally checked in session test code
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20449836
#ROBOMERGE-BOT: (v952-20449836)

[CL 20449877 by james hopkin in ue5-main branch]
2022-06-01 04:55:24 -04:00
paul chipchase
aaec7fabd1 Allow the P4VUtils 'Virtualize and Submit' command to use precompiled binaries is they are available.
#rb Sebastian.Nordgren
#rnx
#jira UE-152958
#preflight 629717b72c618ddc669143d7

- Instead of just building the UnrealVirtualizationTool we will now check to see if there is a precompiled version we can use.
-- If the user has rebuilt the editor locally, then we will ignore any precompiled version of UnrealVirtualizationTool and rebuild that aswell incase there are code changes that it needs to pick up.
- To tell if an exe is locally built or a precompiled binary we check for a .version OR .target file (this can vary depending how a program is set up) then look for the JSON property 'IsPromotedBuild ' which when none zero means that the binary is probably prebuilt.
-- This isn't very robust and I am not happy with it, but we don't seem to have an official way to determine a precompiled binary. When we do get an offical way to do it I will update the command.

[CL 20448604 by paul chipchase in ue5-main branch]
2022-06-01 03:52:14 -04:00
paul chipchase
5afd605ecf Allow the P4VUtils 'Virtualize and Submit' command to work on multiple changelists at the same time.
#rb Sebastian.Nordgren
#jira UE-154011
#rnx
#preflight 6294a6eb380652524ebcc4a7

- If we use uppercase %C in P4V to pass the changelist number then we will get a list of all changelists that the user has selected rather than launching the command once per changelist which is what happens when the lower case %c is used
-- Due to the use of UBT, we can run into problems if the user tries to submit multiple changelists and they are processed in different processes. Even if we fixed the command to only run UBT one process at a time, running many versions of the submit tool will create many more perforce connections which we'd like to avoid, so having all of the changelists run through one instance is still prefered.
- Processing a changelist has been moved to a new method, ::ProcessChangelist which is pretty much the same code as we had in  ::Execute.
-- Rather than connecting to perforce for each changelist, this code has been kept in ::Execute and is only run once, the connection is then passed to ::ProcessChangelist.
- Logging has been improved to show when the tool is exiting, either from failure or success. The p4v terminal does not do a good job informating the user when the process has finished running so hopefully this will help.
- A small extension to ILogger has been added, ::NewLine which writes an empty line to the logger.
- This was the simplest way to add support to multiple changelists. We process each one by itself until we run out of changelists or we reach an error. However it is likely that packages in multiple changelists would be in the same project or at least use the same engine installation, so we could remove some overhead by parsing all changelists, gathering the packages, virtualizating those packages then submitting the changelists afterwards.
-- This would be a great approach for the average user as they will likely be submitting relatively small changelists (< 100 files) but would be a terrible approach if the entire project was being virtualized where the total number of packages being submitting could be in the 100k-million range. So we'd probably want a "process changelists separatly" mode even if we did make the optimized version.
-- Looking into adding a combined changelist mode will be added as an optimization task.
- Added a new preprocessor define 'UE_DEBUG_DISABLE_SUBMITS' that when enabled will cause the command to only pretend to submit the target changelist(s) this is intended for use in development to avoid submitting changelists over and over when testing the non-submission portion of the command.
-- Note that it is defined inside of a DEBUG check, so even if it is accidently submitted enabled, it will not be published.

[CL 20429873 by paul chipchase in ue5-main branch]
2022-05-30 07:34:53 -04:00
james hopkin
9440632288 [robo] Fixes for keeping ack field on message update
#ROBOMERGE-AUTHOR: james.hopkin
#ROBOMERGE-SOURCE: CL 20362246
#ROBOMERGE-BOT: (v948-20297126)

[CL 20362258 by james hopkin in ue5-main branch]
2022-05-25 06:55:31 -04:00
paul chipchase
d545d66b9a Rework the logic for finding the project associated with each package file to match the native code, including changes found in CL 20346906)
#rb trivial
#rnx
#preflight 628ccca9fc217779d4361cb5

- The native code changes we are trying to match from CL 20346906, fix a problem when parsing a package path containing more than one content directory.
- The method now takes an ILogger so that we can record problems found.
- Even though we don't use the .uplugin file, we now match the native code and look for it first, rather than looking for the /plugins/ directory immediately. This should reduce any differences between the two code paths.

[CL 20346914 by paul chipchase in ue5-main branch]
2022-05-24 08:51:08 -04:00
paul chipchase
64efab556e Fix more compilation warnings in P4VUtils.
#rb Sebastian.Nordgren
#rnx
#preflight 628c85f58673efbf3c0a5e3f

- Added checks when parsing xml to make sure that expected nodes/lists were found and are not null.
- Response was assigned as null, but nothing was checking for this. The initial value has been changed to an empty string which wioll invoke the user cancelling the operation as the default behaviour.
- StreamReader.ReadToEnd is a blocking call in an async method. Replaced with await StreamReader.ReadToEndAsync.

[CL 20346208 by paul chipchase in ue5-main branch]
2022-05-24 07:14:12 -04:00
paul chipchase
9fca28ee71 Fix some warnings introduced in the recent upgrade to .NET 6
#rb Sebastian.Nordgren
#rnx
#preflight 628b910a573a7de2c4249502

- Handle Path.GetDirectoryName and Directory.GetParent potentially returning null

[CL 20344754 by paul chipchase in ue5-main branch]
2022-05-24 02:29:04 -04:00
paul chipchase
0e85c4730c Fix P4Utils to compile with the changes to the logging API in CL 20245803
#rb Ben.Marsh
#rnx
#preflight 628b8e06693c5e1de2797dd6

[CL 20326531 by paul chipchase in ue5-main branch]
2022-05-23 09:49:24 -04:00