Files
UnrealEngineUWP/Engine/Source/Programs/AutomationTool/Scripts/ArchiveCommand.Automation.cs
jonathan adamczewski f72e6cce86 AutomationTool:
Move Project class into a namespace (rather than global class), and consequent using changes to consumers of the class.

#jira none
#trivial

#ROBOMERGE-SOURCE: CL 16933076 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16933088 by jonathan adamczewski in ue5-release-engine-test branch]
2021-07-22 20:27:40 -04:00

85 lines
2.3 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Reflection;
using AutomationTool;
using UnrealBuildTool;
using EpicGames.Core;
namespace AutomationScripts
{
public partial class Project : CommandUtils
{
public static void CreateArchiveManifest(ProjectParams Params, DeploymentContext SC)
{
if (!Params.Archive)
{
return;
}
var ThisPlatform = SC.StageTargetPlatform;
ThisPlatform.GetFilesToArchive(Params, SC);
//@todo add any archive meta data files as needed
if (Params.ArchiveMetaData)
{
// archive the build.version file for extra info for testing, etc
string BuildVersionFile = CombinePaths(SC.LocalRoot.FullName, "Engine", "Build", "Build.version");
SC.ArchiveFiles(Path.GetDirectoryName(BuildVersionFile), Path.GetFileName(BuildVersionFile));
}
}
public static void ApplyArchiveManifest(ProjectParams Params, DeploymentContext SC)
{
if (SC.ArchivedFiles.Count > 0)
{
foreach (var Pair in SC.ArchivedFiles)
{
FileReference Src = new FileReference(Pair.Key);
FileReference Dest = FileReference.Combine(SC.ArchiveDirectory, Pair.Value);
CopyFileIncremental(Src, Dest);
}
}
}
public static void Archive(ProjectParams Params)
{
Params.ValidateAndLog();
if (!Params.Archive)
{
return;
}
LogInformation("********** ARCHIVE COMMAND STARTED **********");
LogInformation("Archiving to {0}", Params.ArchiveDirectoryParam);
if (!Params.NoClient)
{
var DeployContextList = CreateDeploymentContext(Params, false, false);
foreach (var SC in DeployContextList)
{
CreateArchiveManifest(Params, SC);
ApplyArchiveManifest(Params, SC);
SC.StageTargetPlatform.ProcessArchivedProject(Params, SC);
}
}
if (Params.DedicatedServer)
{
ProjectParams ServerParams = new ProjectParams(Params);
ServerParams.Devices = new ParamList<string>(ServerParams.ServerDevice);
var DeployContextList = CreateDeploymentContext(ServerParams, true, false);
foreach (var SC in DeployContextList)
{
CreateArchiveManifest(Params, SC);
ApplyArchiveManifest(Params, SC);
SC.StageTargetPlatform.ProcessArchivedProject(Params, SC);
}
}
LogInformation("********** ARCHIVE COMMAND COMPLETED **********");
}
}
}