From 949df85170ca5a28c94c5e24641a6d41d44e6d16 Mon Sep 17 00:00:00 2001 From: Morb0 <14136326+Morb0@users.noreply.github.com> Date: Thu, 9 Nov 2023 11:58:44 +0300 Subject: [PATCH] Update content package for Secrets --- Content.Packaging/ClientPackaging.cs | 27 ++++++++++++++++++++++- Content.Packaging/ServerPackaging.cs | 32 ++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/Content.Packaging/ClientPackaging.cs b/Content.Packaging/ClientPackaging.cs index 033cab71f01..fc1de7d060a 100644 --- a/Content.Packaging/ClientPackaging.cs +++ b/Content.Packaging/ClientPackaging.cs @@ -10,6 +10,7 @@ namespace Content.Packaging; public static class ClientPackaging { + private static readonly bool UseSecrets = Directory.Exists(Path.Combine("Secrets")); // Corvax-Secrets /// /// Be advised this can be called from server packaging during a HybridACZ build. /// @@ -34,6 +35,24 @@ await ProcessHelpers.RunCheck(new ProcessStartInfo "/m" } }); + if (UseSecrets) + { + await ProcessHelpers.RunCheck(new ProcessStartInfo + { + FileName = "dotnet", + ArgumentList = + { + "build", + Path.Combine("Secrets","Content.Corvax.Client", "Content.Corvax.Client.csproj"), + "-c", "Release", + "--nologo", + "/v:m", + "/t:Rebuild", + "/p:FullRelease=true", + "/m" + } + }); + } } logger.Info("Packaging client..."); @@ -65,11 +84,17 @@ public static async Task WriteResources( var inputPass = graph.Input; + // Corvax-Secrets-Start: Add Corvax interfaces to Magic ACZ + var assemblies = new List { "Content.Client", "Content.Shared", "Content.Shared.Database", "Content.Corvax.Interfaces.Client", "Content.Corvax.Interfaces.Shared" }; + if (UseSecrets) + assemblies.AddRange(new[] { "Content.Corvax.Shared", "Content.Corvax.Client" }); + // Corvax-Secrets-End + await RobustSharedPackaging.WriteContentAssemblies( inputPass, contentDir, "Content.Client", - new[] { "Content.Client", "Content.Shared", "Content.Shared.Database", "Content.Corvax.Interfaces.Client", "Content.Corvax.Interfaces.Shared" }, // Corvax-Secrets: Add Corvax interfaces to Magic ACZ + assemblies, // Corvax-Secrets cancel: cancel); await RobustClientPackaging.WriteClientResources(contentDir, pass, cancel); diff --git a/Content.Packaging/ServerPackaging.cs b/Content.Packaging/ServerPackaging.cs index d75b425561a..36ec4d6449d 100644 --- a/Content.Packaging/ServerPackaging.cs +++ b/Content.Packaging/ServerPackaging.cs @@ -38,6 +38,10 @@ public static class ServerPackaging private static readonly List ServerContentAssemblies = new() { + // Corvax-Secrets-Start + "Content.Corvax.Interfaces.Shared", + "Content.Corvax.Interfaces.Server", + // Corvax-Secrets-End "Content.Server.Database", "Content.Server", "Content.Shared", @@ -74,6 +78,8 @@ public static class ServerPackaging "zh-Hant" }; + private static readonly bool UseSecrets = Directory.Exists(Path.Combine("Secrets")); // Corvax-Secrets + public static async Task PackageServer(bool skipBuild, bool hybridAcz, IPackageLogger logger, List? platforms = null) { if (platforms == null) @@ -122,6 +128,28 @@ await ProcessHelpers.RunCheck(new ProcessStartInfo "/m" } }); + // Corvax-Secrets-Start + if (UseSecrets) + { + logger.Info($"Secrets found. Building secret project for {platform}..."); + await ProcessHelpers.RunCheck(new ProcessStartInfo + { + FileName = "dotnet", + ArgumentList = + { + "build", + Path.Combine("Secrets","Content.Corvax.Server", "Content.Corvax.Server.csproj"), + "-c", "Release", + "--nologo", + "/v:m", + $"/p:TargetOs={platform.TargetOs}", + "/t:Rebuild", + "/p:FullRelease=true", + "/m" + } + }); + } + // Corvax-Secrets-End await PublishClientServer(platform.Rid, platform.TargetOs); } @@ -179,6 +207,10 @@ private static async Task WriteServerResources( var inputPass = graph.Input; var contentAssemblies = new List(ServerContentAssemblies); + // Corvax-Secrets-Start + if (UseSecrets) + contentAssemblies.AddRange(new[] { "Content.Corvax.Shared", "Content.Corvax.Server" }); + // Corvax-Secrets-End // Additional assemblies that need to be copied such as EFCore. var sourcePath = Path.Combine(contentDir, "bin", "Content.Server");