Add script to publish Goldilocks app for NativeAOT
When new developers want to test out their changes against the "Stage 1" Goldilocks app, they have to know exactly how to publish the app (PublishAot=true, TrimMode=full, StripSymbols=true, etc).
We should have a script next to the .csproj that devs can easily run locally to get the same app that is used in our benchmarks.
Note this could also be documentation, but a script feels nicer.
cc @mitchdenny @eiriktsarpalis
We have the README in the scenarios folder that references all the available benchmarks and sample command lines for each. Can you check if it should be documented there too?
https://github.com/aspnet/Benchmarks/blob/main/scenarios/README.md
@eiriktsarpalis and I chatted a bit about this.
Our thinking is that it would be best if we had the ability to point to a local build of dotnet/runtime and/or dotnet/aspnetcore. That way runtime and aspnet devs could easily test their changes changes by doing something like:
crank
--config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/goldilocks.benchmarks.yml
--scenario stage1publishaot
--profile aspnet-perf-win
--chart
--application.runtimePackage C:\git\runtime\artifacts\packages\Release\Shipping\runtime.win-x64.Microsoft.DotNet.ILCompiler.8.0.0-dev.nupkg
And crank would upload and use the runtime.win-x64.Microsoft.DotNet.ILCompiler.8.0.0-dev.nupkg that I locally built.
The same functionality for --[JOB].aspNetCorePackage.
Then we could just have a README that said:
- Build your changes locally using
./build.cmd clr.aot+libs+packs -c release - Run the above crank command