From 8e6ad91ad1b57b6df15fc395c0dde51fb9d47332 Mon Sep 17 00:00:00 2001 From: Bruno Massa Date: Thu, 25 Apr 2024 02:29:07 -0500 Subject: [PATCH] ci: create container with rid names only (no version) --- .nuke/Build.Container.cs | 7 ++-- .nuke/Build.GitLab.cs | 3 +- .nuke/Build.Publish.cs | 76 ++++++++++++++++++++-------------------- .nuke/Build.Version.cs | 2 +- 4 files changed, 46 insertions(+), 42 deletions(-) diff --git a/.nuke/Build.Container.cs b/.nuke/Build.Container.cs index 683b2f6..238b341 100644 --- a/.nuke/Build.Container.cs +++ b/.nuke/Build.Container.cs @@ -72,12 +72,15 @@ sealed partial class Build : NukeBuild { return ["local", $"local-{ContainerRuntimeIdentifier.Item1}"]; } - List tagsOriginal = [Version, VersionMajorMinor, VersionMajor]; + List tagsOriginal = [Version, VersionMajorMinor, VersionMajor, string.Empty]; if (ContainerRuntimeIdentifier.Item2) { tagsOriginal.Add("latest"); } - var tags = tagsOriginal.Select(tag => $"{ContainerRuntimeIdentifier.Item1}-{tag}").ToList(); + var tags = tagsOriginal.Select(tag => + string.IsNullOrEmpty(tag) + ? $"{ContainerRuntimeIdentifier.Item1}" + : $"{ContainerRuntimeIdentifier.Item1}-{tag}").ToList(); if (containerDefaultRID == runtimeIdentifier) { tags.AddRange(tagsOriginal); diff --git a/.nuke/Build.GitLab.cs b/.nuke/Build.GitLab.cs index c7403af..a2e5623 100644 --- a/.nuke/Build.GitLab.cs +++ b/.nuke/Build.GitLab.cs @@ -50,7 +50,8 @@ sealed partial class Build : NukeBuild .Executes(async () => { // The package name constructed using packageName, runtimeIdentifier, and Version - var package = $"{packageName}-{runtimeIdentifier}-{CurrentTag}"; + var rid = runtimeIdentifier != "linux-musl-x64" ? runtimeIdentifier : "alpine"; + var package = $"{packageName}-{rid}-{CurrentTag}"; // The filename of the package, constructed using the package variable var filename = $"{package}.zip"; diff --git a/.nuke/Build.Publish.cs b/.nuke/Build.Publish.cs index 49a8f7e..daa7b85 100644 --- a/.nuke/Build.Publish.cs +++ b/.nuke/Build.Publish.cs @@ -11,42 +11,42 @@ namespace SuCoS.Nuke; /// sealed partial class Build : NukeBuild { - [Parameter("Runtime identifier for the build (e.g., win-x64, linux-x64, osx-x64) (default: linux-x64)")] - readonly string runtimeIdentifier = "linux-x64"; - - [Parameter("publish-directory (default: ./publish/{runtimeIdentifier})")] - readonly AbsolutePath publishDirectory; - AbsolutePath PublishDirectory => publishDirectory ?? RootDirectory / "publish" / runtimeIdentifier; - - [Parameter("publish-self-contained (default: true)")] - readonly bool publishSelfContained = true; - - [Parameter("publish-single-file (default: true)")] - readonly bool publishSingleFile = true; - - [Parameter("publish-trimmed (default: false)")] - readonly bool publishTrimmed = false; - - [Parameter("publish-ready-to-run (default: true)")] - readonly bool publishReadyToRun = true; - - Target Publish => td => td - .After(Restore) - .Executes(() => - { - _ = DotNetPublish(s => s - .SetNoLogo(true) - .SetProject("source/SuCoS.csproj") - .SetConfiguration(configurationSet) - .SetOutput(PublishDirectory) - .SetRuntime(runtimeIdentifier) - .SetSelfContained(publishSelfContained) - .SetPublishSingleFile(publishSingleFile) - .SetPublishTrimmed(publishTrimmed) - .SetPublishReadyToRun(publishReadyToRun) - .SetVersion(CurrentVersion) - .SetAssemblyVersion(CurrentVersion) - .SetInformationalVersion(CurrentVersion) - ); - }); + [Parameter("Runtime identifier for the build (e.g., win-x64, linux-x64, osx-x64) (default: linux-x64)")] + readonly string runtimeIdentifier = "linux-x64"; + + [Parameter("publish-directory (default: ./publish/{runtimeIdentifier})")] + readonly AbsolutePath publishDirectory; + AbsolutePath PublishDirectory => publishDirectory ?? RootDirectory / "publish" / runtimeIdentifier; + + [Parameter("publish-self-contained (default: true)")] + readonly bool publishSelfContained = true; + + [Parameter("publish-single-file (default: true)")] + readonly bool publishSingleFile = true; + + [Parameter("publish-trimmed (default: false)")] + readonly bool publishTrimmed = false; + + [Parameter("publish-ready-to-run (default: true)")] + readonly bool publishReadyToRun = true; + + Target Publish => td => td + .After(Restore) + .Executes(() => + { + _ = DotNetPublish(s => s + .SetNoLogo(true) + .SetProject("source/SuCoS.csproj") + .SetConfiguration(configurationSet) + .SetOutput(PublishDirectory) + .SetRuntime(runtimeIdentifier) + .SetSelfContained(publishSelfContained) + .SetPublishSingleFile(publishSingleFile) + .SetPublishTrimmed(publishTrimmed) + .SetPublishReadyToRun(publishReadyToRun) + .SetVersion(CurrentVersion) + .SetAssemblyVersion(CurrentVersion) + .SetInformationalVersion(CurrentVersion) + ); + }); } diff --git a/.nuke/Build.Version.cs b/.nuke/Build.Version.cs index d0595e7..521e76c 100644 --- a/.nuke/Build.Version.cs +++ b/.nuke/Build.Version.cs @@ -54,7 +54,7 @@ sealed partial class Build : NukeBuild var lastCommmit = GitTasks.Git("log -1").FirstOrDefault().Text; var status = GitTasks.Git("status").FirstOrDefault().Text; Log.Information("Current version: {Version}", CurrentVersion); - Log.Information("Current tag: {Version}", CurrentTag); + Log.Information("Current tag: {Version}", CurrentTag); Log.Information("Next version: {Version}", Version); }); -- GitLab