diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index 4107d5b1f..e91aa1433 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -35,6 +35,7 @@ "CreateNugetPackages", "DownloadApiBaselinePackages", "GenerateCppHeaders", + "InitDnx", "OutputApiDiff", "OutputVersion", "Package", diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs index d6d636aac..1c8b3d37e 100644 --- a/nukebuild/Build.cs +++ b/nukebuild/Build.cs @@ -36,13 +36,13 @@ partial class Build : NukeBuild [NuGetPackage("Microsoft.DotNet.ApiCompat.Tool", "Microsoft.DotNet.ApiCompat.Tool.dll", Framework = "net8.0")] Tool ApiCompatTool; - + [NuGetPackage("Microsoft.DotNet.ApiDiff.Tool", "Microsoft.DotNet.ApiDiff.Tool.dll", Framework = "net8.0")] Tool ApiDiffTool; [NuGetPackage("dotnet-ilrepack", "ILRepackTool.dll", Framework = "net8.0")] Tool IlRepackTool; - + protected override void OnBuildInitialized() { Parameters = new BuildParameters(this, ScheduledTargets.Contains(BuildToNuGetCache)); @@ -57,6 +57,7 @@ partial class Build : NukeBuild Information("Repository Name: " + Parameters.RepositoryName); Information("Repository Branch: " + Parameters.RepositoryBranch); } + Information("Configuration: " + Parameters.Configuration); Information("IsLocalBuild: " + Parameters.IsLocalBuild); Information("IsRunningOnUnix: " + Parameters.IsRunningOnUnix); @@ -73,8 +74,9 @@ partial class Build : NukeBuild void ExecWait(string preamble, string command, string args) { Console.WriteLine(preamble); - Process.Start(new ProcessStartInfo(command, args) {UseShellExecute = false}).WaitForExit(); + Process.Start(new ProcessStartInfo(command, args) { UseShellExecute = false }).WaitForExit(); } + ExecWait("dotnet version:", "dotnet", "--info"); ExecWait("dotnet workloads:", "dotnet", "workload list"); Information("Processor count: " + Environment.ProcessorCount); @@ -99,6 +101,7 @@ partial class Build : NukeBuild .AddProperty("SkipBuildingTests", "True"); return c; } + DotNetBuildSettings ApplySetting(DotNetBuildSettings c, Configure configurator = null) => ApplySettingCore(c).Build.Apply(configurator); @@ -129,6 +132,17 @@ partial class Build : NukeBuild } }); + // Ensure that Bun.Official.Tool is downloaded at least once on CI to work around https://github.com/dotnet/sdk/issues/51831 + Target InitDnx => _ => _ + .Executes(() => + { + var process = ProcessTasks.StartProcess( + "dnx", + "Bun.Unofficial.Tool --yes -- install", + $"{RootDirectory}/src/Browser/Avalonia.Browser/webapp"); + process.AssertZeroExitCode(); + }); + Target CompileNative => _ => _ .DependsOn(Clean) .DependsOn(GenerateCppHeaders) @@ -141,7 +155,7 @@ partial class Build : NukeBuild }); Target Compile => _ => _ - .DependsOn(Clean, CompileNative) + .DependsOn(Clean, CompileNative, InitDnx) .Executes(() => { DotNetBuild(c => ApplySetting(c) diff --git a/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj b/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj index 44df6c13b..ec3f384b1 100644 --- a/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj +++ b/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj @@ -10,7 +10,7 @@ $(NoWarn);CS1591 true Avalonia - Remote\HtmlTransport\webapp + $(MSBuildThisFileDirectory)Remote/HtmlTransport/webapp diff --git a/src/Browser/Avalonia.Browser/Avalonia.Browser.csproj b/src/Browser/Avalonia.Browser/Avalonia.Browser.csproj index d51e6ed9a..26b82253a 100644 --- a/src/Browser/Avalonia.Browser/Avalonia.Browser.csproj +++ b/src/Browser/Avalonia.Browser/Avalonia.Browser.csproj @@ -3,7 +3,7 @@ $(AvsCurrentTargetFramework);$(AvsCurrentBrowserTargetFramework) enable true - webapp + $(MSBuildThisFileDirectory)webapp diff --git a/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj b/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj index 77c1753c4..783630c1c 100644 --- a/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj +++ b/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj @@ -2,7 +2,7 @@ $(AvsCurrentTargetFramework) Library - Remote\HtmlTransport\webapp + $(MSBuildThisFileDirectory)Remote/HtmlTransport/webapp