From 94875648f966fccb6d68827a6451ef153e22338c Mon Sep 17 00:00:00 2001 From: Alexey Sosnin Date: Sun, 28 Jan 2024 02:32:20 +0300 Subject: [PATCH] feat: native AOT publish (failed) --- scripts/reinstall-dev-tool.ps1 | 7 +++--- .../Heartbeat.Runtime.csproj | 6 +++++ src/Heartbeat/Extensions/SwaggerExtensions.cs | 4 ++++ src/Heartbeat/Heartbeat.csproj | 11 ++++++++- src/Heartbeat/Program.cs | 23 +++++++++++++++---- 5 files changed, 43 insertions(+), 8 deletions(-) diff --git a/scripts/reinstall-dev-tool.ps1 b/scripts/reinstall-dev-tool.ps1 index 449f0b0..07aa9e4 100644 --- a/scripts/reinstall-dev-tool.ps1 +++ b/scripts/reinstall-dev-tool.ps1 @@ -18,9 +18,10 @@ try dotnet clean --configuration Release Get-Date -Format '' $VersionSuffix = "rc.$(Get-Date -Format 'yyyy-MM-dd-HHmm')" - dotnet pack --version-suffix $VersionSuffix - $PackageVersion = "$VersionPrefix-$VersionSuffix" - dotnet tool install --global --add-source ./src/Heartbeat/nupkg Heartbeat --version $PackageVersion + dotnet publish --runtime win-x64 + dotnet pack --runtime win-x64 --version-suffix $VersionSuffix +# $PackageVersion = "$VersionPrefix-$VersionSuffix" +# dotnet tool install --global --add-source ./src/Heartbeat/nupkg Heartbeat --version $PackageVersion } catch { Write-Host 'Install global tool - FAILED!' -ForegroundColor Red diff --git a/src/Heartbeat.Runtime/Heartbeat.Runtime.csproj b/src/Heartbeat.Runtime/Heartbeat.Runtime.csproj index b77dc6e..5c1d383 100644 --- a/src/Heartbeat.Runtime/Heartbeat.Runtime.csproj +++ b/src/Heartbeat.Runtime/Heartbeat.Runtime.csproj @@ -3,6 +3,12 @@ + + true + true + true + + diff --git a/src/Heartbeat/Extensions/SwaggerExtensions.cs b/src/Heartbeat/Extensions/SwaggerExtensions.cs index 70cbff7..779a7c2 100644 --- a/src/Heartbeat/Extensions/SwaggerExtensions.cs +++ b/src/Heartbeat/Extensions/SwaggerExtensions.cs @@ -4,6 +4,7 @@ using Swashbuckle.AspNetCore.Annotations; using Swashbuckle.AspNetCore.SwaggerGen; +using System.Diagnostics; using System.Reflection; namespace Heartbeat.Host.Extensions; @@ -76,7 +77,9 @@ public class RequireNonNullablePropertiesSchemaFilter : ISchemaFilter { public void Apply(OpenApiSchema model, SchemaFilterContext context) { +#if DEBUG FixNullableProperties(model, context); +#endif var additionalRequiredProps = model.Properties .Where(x => !x.Value.Nullable && !model.Required.Contains(x.Key)) @@ -88,6 +91,7 @@ public void Apply(OpenApiSchema model, SchemaFilterContext context) } } + [Conditional("DEBUG")] private static void FixNullableProperties(OpenApiSchema schema, SchemaFilterContext context) { foreach (var property in schema.Properties) diff --git a/src/Heartbeat/Heartbeat.csproj b/src/Heartbeat/Heartbeat.csproj index 8abf4e5..2403617 100644 --- a/src/Heartbeat/Heartbeat.csproj +++ b/src/Heartbeat/Heartbeat.csproj @@ -13,11 +13,20 @@ https://localhost:44443 npm start + + + true + true + win-x64 + true true - heartbeat + + + + heartbeat.exe ./nupkg README.md diff --git a/src/Heartbeat/Program.cs b/src/Heartbeat/Program.cs index 11c08de..9ea2b11 100644 --- a/src/Heartbeat/Program.cs +++ b/src/Heartbeat/Program.cs @@ -1,13 +1,17 @@ using Heartbeat.Host.CommandLine; using Heartbeat.Host.Extensions; using Heartbeat.Runtime; +using Heartbeat.Runtime.Domain; using Microsoft.AspNetCore.Diagnostics; +using Microsoft.Diagnostics.Runtime; using System.CommandLine; using System.Net.Mime; +using System.Runtime.InteropServices; using System.Text.Json.Serialization; +#if DEBUG if (Environment.GetEnvironmentVariable("HEARTBEAT_GENERATE_CONTRACTS") == "true") { var builder = WebApplication.CreateBuilder(args); @@ -17,8 +21,13 @@ .AddJsonOptions( options => { - var enumConverter = new JsonStringEnumConverter(); - options.JsonSerializerOptions.Converters.Add(enumConverter); + // var enumConverter = new JsonStringEnumConverter(); + // options.JsonSerializerOptions.Converters.Add(enumConverter); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); }); builder.Services.AddSwagger(); @@ -32,6 +41,7 @@ app.Run(); return; } +#endif var (rootCommand, binder) = WebCommandOptions.RootCommand(); rootCommand.SetHandler((WebCommandOptions options) => MainWeb(options, args), binder); @@ -54,8 +64,13 @@ static void MainWeb(WebCommandOptions options, string[] args) .AddJsonOptions( options => { - var enumConverter = new JsonStringEnumConverter(); - options.JsonSerializerOptions.Converters.Add(enumConverter); + // var enumConverter = new JsonStringEnumConverter(); + // options.JsonSerializerOptions.Converters.Add(enumConverter); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); }); builder.Services.AddProblemDetails(); builder.Services.AddSwagger();