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 + } + } } +