Skip to content

Commit

Permalink
feat: native AOT publish (failed)
Browse files Browse the repository at this point in the history
  • Loading branch information
Ne4to committed Jan 27, 2024
1 parent d84d61a commit 9487564
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 8 deletions.
7 changes: 4 additions & 3 deletions scripts/reinstall-dev-tool.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions src/Heartbeat.Runtime/Heartbeat.Runtime.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
<Using Include="Heartbeat.Domain"/>
</ItemGroup>

<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
<PublishAot>true</PublishAot>
<IsAotCompatible>true</IsAotCompatible>
</PropertyGroup>

<!-- <ItemGroup>-->
<!-- <Reference Include="Microsoft.Diagnostics.Runtime">-->
<!-- <HintPath>..\..\..\clrmd\artifacts\bin\Microsoft.Diagnostics.Runtime\Debug\net6.0\Microsoft.Diagnostics.Runtime.dll</HintPath>-->
Expand Down
4 changes: 4 additions & 0 deletions src/Heartbeat/Extensions/SwaggerExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Swashbuckle.AspNetCore.Annotations;
using Swashbuckle.AspNetCore.SwaggerGen;

using System.Diagnostics;
using System.Reflection;

namespace Heartbeat.Host.Extensions;
Expand Down Expand Up @@ -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))
Expand All @@ -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)
Expand Down
11 changes: 10 additions & 1 deletion src/Heartbeat/Heartbeat.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,20 @@
<SpaProxyServerUrl>https://localhost:44443</SpaProxyServerUrl>
<SpaProxyLaunchCommand>npm start</SpaProxyLaunchCommand>
</PropertyGroup>

<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
<PublishAot>true</PublishAot>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

<PropertyGroup>
<IsPackable>true</IsPackable>
<PackAsTool>true</PackAsTool>
<ToolCommandName>heartbeat</ToolCommandName>
<!-- TODO nuget package is created but `dotnet tool install` fails: -->
<!-- The settings file in the tool's NuGet package is invalid: Entry point file 'Heartbeat.dll' for command 'heartbeat.exe' was not found in the package.-->
<!-- Tool 'heartbeat' failed to install. Contact the tool author for assistance.-->
<ToolCommandName>heartbeat.exe</ToolCommandName>
<PackageOutputPath>./nupkg</PackageOutputPath>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
Expand Down
23 changes: 19 additions & 4 deletions src/Heartbeat/Program.cs
Original file line number Diff line number Diff line change
@@ -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);
Expand All @@ -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<ObjectGCStatus>());
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter<Generation>());
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter<Architecture>());
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter<GCSegmentKind>());
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter<ClrRootKind>());
});

builder.Services.AddSwagger();
Expand All @@ -32,6 +41,7 @@
app.Run();
return;
}
#endif

var (rootCommand, binder) = WebCommandOptions.RootCommand();
rootCommand.SetHandler((WebCommandOptions options) => MainWeb(options, args), binder);
Expand All @@ -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<ObjectGCStatus>());
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter<Generation>());
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter<Architecture>());
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter<GCSegmentKind>());
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter<ClrRootKind>());
});
builder.Services.AddProblemDetails();
builder.Services.AddSwagger();
Expand Down

0 comments on commit 9487564

Please sign in to comment.