From 49f5db6b72fe963b3539c0899bf2decafe1f0494 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Mon, 29 Jun 2026 12:35:19 +0900 Subject: [PATCH] =?UTF-8?q?feat(layout):=20=EC=A2=8C=EC=B8=A1=ED=95=98?= =?UTF-8?q?=EB=8B=A8=20=EB=82=B4=EB=B9=84=EA=B2=8C=EC=9D=B4=EC=85=98=20?= =?UTF-8?q?=EB=93=9C=EB=A1=9C=EC=96=B4=EC=97=90=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=EB=B0=8F=20=EB=B0=B0=ED=8F=AC=20=EC=9D=BC?= =?UTF-8?q?=EC=8B=9C=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EB=B9=8C=EB=93=9C?= =?UTF-8?q?=20=EC=9E=90=EB=8F=99=ED=99=94=20=EC=97=B0=EA=B3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy-prod.yml | 9 ++++ .gitea/workflows/snapshot_admin_deploy.yml | 9 ++++ .../Components/Layout/MainLayout.razor | 43 ++++++++++++++++++- 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy-prod.yml b/.gitea/workflows/deploy-prod.yml index 8bf91fc..2c5aaab 100644 --- a/.gitea/workflows/deploy-prod.yml +++ b/.gitea/workflows/deploy-prod.yml @@ -79,6 +79,15 @@ jobs: --no-build \ -o ./publish-output + - name: Generate Build Info + run: | + COMMIT_HASH=$(git rev-parse --short HEAD) + BUILD_TIME=$(date -d "+9 hours" +'%Y-%m-%d %H:%M:%S KST') + mkdir -p ./publish-output/wwwroot + printf '{\n "version": "1.0.%s-%s",\n "built": "%s"\n}\n' "${{ github.run_number }}" "$COMMIT_HASH" "$BUILD_TIME" > ./publish-output/wwwroot/version.json + echo "✓ Generated version info: 1.0.${{ github.run_number }}-$COMMIT_HASH @ $BUILD_TIME" + + - name: Setup SSH run: | mkdir -p ~/.ssh diff --git a/.gitea/workflows/snapshot_admin_deploy.yml b/.gitea/workflows/snapshot_admin_deploy.yml index b6cc790..676f35f 100644 --- a/.gitea/workflows/snapshot_admin_deploy.yml +++ b/.gitea/workflows/snapshot_admin_deploy.yml @@ -34,6 +34,15 @@ jobs: echo "[deploy] publishing .NET 10 Blazor app" dotnet publish src/dotnet/QuantEngine.Web/QuantEngine.Web.csproj -c Release -o ./publish + - name: Generate Build Info + run: | + COMMIT_HASH=$(git rev-parse --short HEAD) + BUILD_TIME=$(date -d "+9 hours" +'%Y-%m-%d %H:%M:%S KST') + mkdir -p ./publish/wwwroot + printf '{\n "version": "1.0.%s-%s",\n "built": "%s"\n}\n' "${{ github.run_number }}" "$COMMIT_HASH" "$BUILD_TIME" > ./publish/wwwroot/version.json + echo "✓ Generated version info: 1.0.${{ github.run_number }}-$COMMIT_HASH @ $BUILD_TIME" + + - name: Compress Artifact run: | echo "[deploy] compressing publish output" diff --git a/src/dotnet/QuantEngine.Web/Components/Layout/MainLayout.razor b/src/dotnet/QuantEngine.Web/Components/Layout/MainLayout.razor index e87d14c..7ad3359 100644 --- a/src/dotnet/QuantEngine.Web/Components/Layout/MainLayout.razor +++ b/src/dotnet/QuantEngine.Web/Components/Layout/MainLayout.razor @@ -1,4 +1,5 @@ -@inherits LayoutComponentBase +@inherits LayoutComponentBase +@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment WebHostEnvironment @@ -9,11 +10,19 @@ - + Menu + + + + +
+
QuantEngine v@appVersion
+
배포: @buildTime
+
@@ -32,9 +41,39 @@ @code { private bool drawerOpen = true; + private string appVersion = "Local Debug"; + private string buildTime = "N/A"; private void DrawerToggle() { drawerOpen = !drawerOpen; } + + protected override void OnInitialized() + { + try + { + var versionFilePath = Path.Combine(WebHostEnvironment.WebRootPath, "version.json"); + if (File.Exists(versionFilePath)) + { + var jsonContent = File.ReadAllText(versionFilePath); + using var doc = System.Text.Json.JsonDocument.Parse(jsonContent); + var root = doc.RootElement; + + if (root.TryGetProperty("version", out var versionProp)) + { + appVersion = versionProp.GetString() ?? "Local Debug"; + } + if (root.TryGetProperty("built", out var builtProp)) + { + buildTime = builtProp.GetString() ?? "N/A"; + } + } + } + catch + { + // Fail-safe default fallback values + } + } } +