Use standalone Bun to build JS projects instead of NodeJS (#20243)

* Replace node.js npm with bun

* Run bun test target, instead of direct npm, remove `SkipPreviewer` prop

* Add "--yes" argument to dnx command

* Remove unused scripts
This commit is contained in:
Max Katz
2025-12-09 17:06:24 -05:00
committed by GitHub
parent 884051ed10
commit 09fefed1a4
15 changed files with 1210 additions and 11509 deletions
+5 -30
View File
@@ -1,20 +1,15 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using System.Xml.Linq;
using Nuke.Common;
using Nuke.Common.Tooling;
using Nuke.Common.Tools.DotNet;
using Nuke.Common.Tools.Npm;
using Nuke.Common.Utilities;
using static Nuke.Common.EnvironmentInfo;
using static Nuke.Common.IO.PathConstruction;
using static Nuke.Common.Tools.DotNet.DotNetTasks;
using static Serilog.Log;
using MicroCom.CodeGenerator;
@@ -134,21 +129,6 @@ partial class Build : NukeBuild
}
});
Target CompileHtmlPreviewer => _ => _
.DependsOn(Clean)
.OnlyWhenStatic(() => !Parameters.SkipPreviewer)
.Executes(() =>
{
var webappDir = RootDirectory / "src" / "Avalonia.DesignerSupport" / "Remote" / "HtmlTransport" / "webapp";
NpmTasks.NpmInstall(c => c
.SetProcessWorkingDirectory(webappDir)
.SetProcessAdditionalArguments("--silent"));
NpmTasks.NpmRun(c => c
.SetProcessWorkingDirectory(webappDir)
.SetCommand("dist"));
});
Target CompileNative => _ => _
.DependsOn(Clean)
.DependsOn(GenerateCppHeaders)
@@ -162,7 +142,6 @@ partial class Build : NukeBuild
Target Compile => _ => _
.DependsOn(Clean, CompileNative)
.DependsOn(CompileHtmlPreviewer)
.Executes(() =>
{
DotNetBuild(c => ApplySetting(c)
@@ -254,18 +233,14 @@ partial class Build : NukeBuild
.SetResultsDirectory(Parameters.TestResultsRoot));
Target RunHtmlPreviewerTests => _ => _
.DependsOn(CompileHtmlPreviewer)
.OnlyWhenStatic(() => !(Parameters.SkipPreviewer || Parameters.SkipTests))
.OnlyWhenStatic(() => !(Parameters.SkipTests))
.Executes(() =>
{
var webappTestDir = RootDirectory / "tests" / "Avalonia.DesignerSupport.Tests" / "Remote" / "HtmlTransport" / "webapp";
var webappTest = RootDirectory / "tests" / "Avalonia.DesignerSupport.Tests";
NpmTasks.NpmInstall(c => c
.SetProcessWorkingDirectory(webappTestDir)
.SetProcessAdditionalArguments("--silent"));
NpmTasks.NpmRun(c => c
.SetProcessWorkingDirectory(webappTestDir)
.SetCommand("test"));
DotNetMSBuild(o => o
.SetProcessWorkingDirectory(webappTest)
.SetTargets("BunRunTests"));
});
Target RunCoreLibsTests => _ => _
-5
View File
@@ -21,9 +21,6 @@ public partial class Build
[Parameter(Name = "force-nuget-version")]
public string? ForceNugetVersion { get; set; }
[Parameter(Name = "skip-previewer")]
public bool SkipPreviewer { get; set; }
[Parameter(Name = "force-api-baseline")]
public string? ForceApiValidationBaseline { get; set; }
@@ -37,7 +34,6 @@ public partial class Build
{
public string Configuration { get; }
public bool SkipTests { get; }
public bool SkipPreviewer {get;}
public string MainRepo { get; }
public string MasterBranch { get; }
public string? RepositoryName { get; }
@@ -81,7 +77,6 @@ public partial class Build
// ARGUMENTS
Configuration = b.Configuration ?? "Release";
SkipTests = b.SkipTests;
SkipPreviewer = b.SkipPreviewer;
// CONFIGURATION
MainRepo = "https://github.com/AvaloniaUI/Avalonia";