diff --git a/ZS/Deploy/Deploy.csproj b/ZS/Deploy/Deploy.csproj new file mode 100644 index 0000000..6c1dc92 --- /dev/null +++ b/ZS/Deploy/Deploy.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/ZS/Deploy/Program.cs b/ZS/Deploy/Program.cs new file mode 100644 index 0000000..d684f2a --- /dev/null +++ b/ZS/Deploy/Program.cs @@ -0,0 +1,33 @@ +using System.Diagnostics; + +var deployDir = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", "..")); +var webDir = Path.GetFullPath(Path.Combine(deployDir, "..", "Web")); +var webProject = Path.Combine(webDir, "Web.csproj"); +var publishDir = Path.Combine(Path.GetTempPath(), "zs-deploy", Guid.NewGuid().ToString()); +var deploymentToken = Environment.GetEnvironmentVariable("ZS_DeployToken") ?? throw new InvalidOperationException("ZS_DeployToken environment variable not set."); +var deployEnv = Environment.GetEnvironmentVariable("ZS_DeployEnv") ?? "preview"; + +// 1. Publish +Console.WriteLine("Publishing Web project..."); +Run("dotnet", $"publish \"{webProject}\" -c Release -o \"{publishDir}\""); + +var wwwroot = Path.Combine(publishDir, "wwwroot"); +if (!Directory.Exists(wwwroot)) +{ + Console.Error.WriteLine("wwwroot not found in publish output."); + return 1; +} + +// 2. Deploy +Console.WriteLine("Deploying to Azure Static Web Apps..."); +Run("swa.cmd", $"deploy \"{wwwroot}\" --deployment-token \"{deploymentToken}\" --app-location \"{webDir}\" --env \"{deployEnv}\""); + +Console.WriteLine("Deploy successful!"); +return 0; + +static void Run(string fileName, string arguments) +{ + var process = Process.Start(new ProcessStartInfo(fileName, arguments) { UseShellExecute = false })!; + process.WaitForExit(); + if (process.ExitCode != 0) { Environment.Exit(process.ExitCode); } +} \ No newline at end of file diff --git a/ZS/Web/Layout/MainLayout.razor.css b/ZS/Web/Layout/MainLayout.razor.css index ecf25e5..cd870cb 100644 --- a/ZS/Web/Layout/MainLayout.razor.css +++ b/ZS/Web/Layout/MainLayout.razor.css @@ -9,7 +9,7 @@ main { } .sidebar { - background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); + background-image: linear-gradient(180deg, #0d1117 0%, #161b22 70%); } .top-row { diff --git a/ZS/Web/Layout/NavMenu.razor b/ZS/Web/Layout/NavMenu.razor index 49aabc0..1d8c7fb 100644 --- a/ZS/Web/Layout/NavMenu.razor +++ b/ZS/Web/Layout/NavMenu.razor @@ -1,6 +1,6 @@  + diff --git a/ZS/ZS.sln b/ZS/ZS.sln index ad63654..8227345 100644 --- a/ZS/ZS.sln +++ b/ZS/ZS.sln @@ -6,6 +6,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Build", "Build\Build.csproj EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Model", "Model\Model.csproj", "{E31A06B0-9B2B-4805-B343-5687A5992E9A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Deploy", "Deploy\Deploy.csproj", "{DECE54F2-51BB-4D7D-BD20-BE7F1C298FA3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -24,5 +26,9 @@ Global {E31A06B0-9B2B-4805-B343-5687A5992E9A}.Debug|Any CPU.Build.0 = Debug|Any CPU {E31A06B0-9B2B-4805-B343-5687A5992E9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {E31A06B0-9B2B-4805-B343-5687A5992E9A}.Release|Any CPU.Build.0 = Release|Any CPU + {DECE54F2-51BB-4D7D-BD20-BE7F1C298FA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DECE54F2-51BB-4D7D-BD20-BE7F1C298FA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DECE54F2-51BB-4D7D-BD20-BE7F1C298FA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DECE54F2-51BB-4D7D-BD20-BE7F1C298FA3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal