From ff7a193da9ca20cb5809c65488426db847899cae Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 10 Feb 2026 18:46:41 +0000 Subject: [PATCH 1/7] Add windows-arm64 support --- Tasks/PackageTask.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Tasks/PackageTask.cs b/Tasks/PackageTask.cs index 7cae42c..4088e47 100644 --- a/Tasks/PackageTask.cs +++ b/Tasks/PackageTask.cs @@ -18,8 +18,8 @@ public override async Task RunAsync(BuildContext context) if (context.BuildSystem().IsRunningOnGitHubActions) { string[] requiredRids = context.IsUniversalBinary ? - ["windows-x64", "linux-x64", "linux-arm64", "osx"] : - ["windows-x64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64"]; + ["windows-x64", "windows-arm64", "linux-x64", "linux-arm64", "osx"] : + ["windows-x64", "windows-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64"]; foreach (var rid in requiredRids) { @@ -40,7 +40,11 @@ public override async Task RunAsync(BuildContext context) string rid = string.Empty; if (context.IsRunningOnWindows()) { - rid = "windows-x64"; + rid = RuntimeInformation.ProcessArchitecture switch + { + Architecture.Arm or Architecture.Arm64 => "windows-arm64", + _ => "windows-x64" + }; } else if (context.IsRunningOnLinux()) { @@ -144,4 +148,4 @@ private static async Task SaveEmbeddedResourceAsync(string resourceName, string await stream.CopyToAsync(writer); writer.Close(); } -} \ No newline at end of file +} From e0d24a275ab719e277703240b1f78b63ce3fb927 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 10 Feb 2026 18:51:46 +0000 Subject: [PATCH 2/7] Refactor rid assignment based on architecture --- Tasks/PublishToolTask.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Tasks/PublishToolTask.cs b/Tasks/PublishToolTask.cs index 8779196..427c011 100644 --- a/Tasks/PublishToolTask.cs +++ b/Tasks/PublishToolTask.cs @@ -10,11 +10,19 @@ public override async Task RunAsync(BuildContext context) { var rid = ""; if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - rid = "windows"; + rid = RuntimeInformation.ProcessArchitecture switch + { + Architecture.Arm or Architecture.Arm64 => "windows-arm64", + _ => "windows-x64", + }; else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) rid = "osx"; else - rid = "linux"; + rid = RuntimeInformation.ProcessArchitecture switch + { + Architecture.Arm or Architecture.Arm64 => "linux-arm64", + _ => "linux-x64", + }; if (!(RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && context.IsUniversalBinary)) { @@ -41,4 +49,4 @@ public override async Task RunAsync(BuildContext context) } } } -} \ No newline at end of file +} From c96c2b997e2cca5c12ba3e5ebd851b9e3092ee65 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 10 Feb 2026 21:53:17 +0000 Subject: [PATCH 3/7] revert back --- Tasks/PublishToolTask.cs | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/Tasks/PublishToolTask.cs b/Tasks/PublishToolTask.cs index 427c011..c4d7c30 100644 --- a/Tasks/PublishToolTask.cs +++ b/Tasks/PublishToolTask.cs @@ -10,19 +10,11 @@ public override async Task RunAsync(BuildContext context) { var rid = ""; if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - rid = RuntimeInformation.ProcessArchitecture switch - { - Architecture.Arm or Architecture.Arm64 => "windows-arm64", - _ => "windows-x64", - }; + rid = "windows"; else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) rid = "osx"; else - rid = RuntimeInformation.ProcessArchitecture switch - { - Architecture.Arm or Architecture.Arm64 => "linux-arm64", - _ => "linux-x64", - }; + rid = "linux"; if (!(RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && context.IsUniversalBinary)) { From 0de4743934f5e342589dc8f3bd0b3dc4da21cce9 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 10 Feb 2026 23:15:48 +0000 Subject: [PATCH 4/7] Upload windows separately --- Tasks/PublishToolTask.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Tasks/PublishToolTask.cs b/Tasks/PublishToolTask.cs index c4d7c30..29e2a69 100644 --- a/Tasks/PublishToolTask.cs +++ b/Tasks/PublishToolTask.cs @@ -28,6 +28,20 @@ public override async Task RunAsync(BuildContext context) var copyToDir = $"artifacts-{rid}"; if (context.BuildSystem().IsRunningOnGitHubActions) { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + // we need to upload each rid of windows separately. + var directories = Directory.GetDirectories(context.ArtifactsDir, "windows-*"); + if (directories.Any()) + { + foreach (var dir in directories) + { + var dirName = new DirectoryInfo(dir).Name; + await context.BuildSystem().GitHubActions.Commands.UploadArtifact(DirectoryPath.FromString(dir), dirName); + } + return; + } + } await context.BuildSystem().GitHubActions.Commands.UploadArtifact(DirectoryPath.FromString(context.ArtifactsDir), copyToDir); } else From cfed735eac525124d95e7864d73b5b221b7fc0c1 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Wed, 11 Feb 2026 00:33:10 +0000 Subject: [PATCH 5/7] Added logging --- Tasks/PackageTask.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Tasks/PackageTask.cs b/Tasks/PackageTask.cs index 4088e47..9fb9ba8 100644 --- a/Tasks/PackageTask.cs +++ b/Tasks/PackageTask.cs @@ -17,6 +17,7 @@ public override async Task RunAsync(BuildContext context) // local artifacts so we can test/run this locally as well if (context.BuildSystem().IsRunningOnGitHubActions) { + context.Information("Running on github actions, attempting to download artifacts from previous publish step"); string[] requiredRids = context.IsUniversalBinary ? ["windows-x64", "windows-arm64", "linux-x64", "linux-arm64", "osx"] : ["windows-x64", "windows-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64"]; @@ -27,16 +28,29 @@ public override async Task RunAsync(BuildContext context) if (context.DirectoryExists(directoryPath)) continue; + context.Information($"Attempting to download artifacts for {rid} to {directoryPath}"); context.CreateDirectory(directoryPath); try { await context.BuildSystem().GitHubActions.Commands.DownloadArtifact($"artifacts-{rid}", directoryPath); } - catch { } + catch (Exception ex) + { + context.Warning($"Failed to download artifacts for {rid}, exception: {ex}"); + } + } + foreach (var dir in context.GetDirectories($"{projectDir}/binaries/*")) + { + context.Information($"Contents of {dir}:"); + foreach (var file in context.GetFiles($"{dir}/**/*")) + { + context.Information($" - {file}"); + } } } else { + context.Information("Not running on github actions, copying local artifacts"); string rid = string.Empty; if (context.IsRunningOnWindows()) { From f1acb22a091a79445a2a9ad47a727f7240d7d9a0 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Wed, 11 Feb 2026 09:29:35 +0000 Subject: [PATCH 6/7] Fix issue with artifact name --- Tasks/PublishToolTask.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tasks/PublishToolTask.cs b/Tasks/PublishToolTask.cs index 29e2a69..75baaf2 100644 --- a/Tasks/PublishToolTask.cs +++ b/Tasks/PublishToolTask.cs @@ -37,7 +37,7 @@ public override async Task RunAsync(BuildContext context) foreach (var dir in directories) { var dirName = new DirectoryInfo(dir).Name; - await context.BuildSystem().GitHubActions.Commands.UploadArtifact(DirectoryPath.FromString(dir), dirName); + await context.BuildSystem().GitHubActions.Commands.UploadArtifact(DirectoryPath.FromString(dir), $"artifacts-{dirName}"); } return; } From 52d2661a0b5282ab5ca6da6c1b5513471566c121 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Wed, 11 Feb 2026 12:32:42 +0000 Subject: [PATCH 7/7] Remove some logging --- Tasks/PackageTask.cs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Tasks/PackageTask.cs b/Tasks/PackageTask.cs index 9fb9ba8..8cf88a3 100644 --- a/Tasks/PackageTask.cs +++ b/Tasks/PackageTask.cs @@ -39,14 +39,6 @@ public override async Task RunAsync(BuildContext context) context.Warning($"Failed to download artifacts for {rid}, exception: {ex}"); } } - foreach (var dir in context.GetDirectories($"{projectDir}/binaries/*")) - { - context.Information($"Contents of {dir}:"); - foreach (var file in context.GetFiles($"{dir}/**/*")) - { - context.Information($" - {file}"); - } - } } else {