diff --git a/Content.Packaging/ClientPackaging.cs b/Content.Packaging/ClientPackaging.cs index a989ebd968e..17708578af2 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 = File.Exists(Path.Combine("Secrets", "CorvaxSecrets.sln")); // 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..."); @@ -64,12 +83,16 @@ public static async Task WriteResources( AssetGraph.CalculateGraph(graph.AllPasses.Append(pass).ToArray(), logger); 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" }, + assemblies, cancel: cancel); await RobustClientPackaging.WriteClientResources(contentDir, pass, cancel); diff --git a/Content.Packaging/ServerPackaging.cs b/Content.Packaging/ServerPackaging.cs index ba489629f79..791df64b8ec 100644 --- a/Content.Packaging/ServerPackaging.cs +++ b/Content.Packaging/ServerPackaging.cs @@ -33,6 +33,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", @@ -68,7 +72,7 @@ public static class ServerPackaging "zh-Hans", "zh-Hant" }; - + private static readonly bool UseSecrets = File.Exists(Path.Combine("Secrets", "CorvaxSecrets.sln")); // Corvax-Secrets public static async Task PackageServer(bool skipBuild, bool hybridAcz, IPackageLogger logger, List? platforms = null) { if (platforms == null) @@ -117,6 +121,29 @@ 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); } @@ -175,7 +202,10 @@ private static async Task WriteServerResources( var inputPassCore = graph.InputCore; var inputPassResources = graph.InputResources; 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");