From eb8ba82891b484466d3325fb7ec8670550b2b590 Mon Sep 17 00:00:00 2001 From: "Deeksitha Merugu (LTIMINDTREE LIMITED)" Date: Mon, 24 Nov 2025 19:52:04 +0530 Subject: [PATCH] Add versioning scheme bysemverbuildnumber --- Tasks/NuGetCommandV2/nugetpack.ts | 13 +++++++++++++ Tasks/NuGetCommandV2/task.json | 5 +++-- Tasks/NuGetCommandV2/task.loc.json | 5 +++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Tasks/NuGetCommandV2/nugetpack.ts b/Tasks/NuGetCommandV2/nugetpack.ts index ceed2446112e..e031084e2827 100644 --- a/Tasks/NuGetCommandV2/nugetpack.ts +++ b/Tasks/NuGetCommandV2/nugetpack.ts @@ -98,6 +98,19 @@ export async function run(nuGetPath: string): Promise { version = versionMatches[0]; break; + case "bySemVerBuildNumber": + tl.debug("Getting version number using SemVer build number"); + + let semVerBuildNumber: string = tl.getVariable("BUILD_BUILDNUMBER"); + tl.debug(`Build number: ${semVerBuildNumber}`); + + // Validate full SemVer 2.0 format + let semVerRegex = /^\d+\.\d+\.\d+(?:\.\d+)?(?:[-\w\.]+)?(?:\+[0-9A-Za-z\-\.]+)?$/; + if (!semVerRegex.test(semVerBuildNumber)) { + tl.setResult(tl.TaskResult.Failed, tl.loc("Error_InvalidSemVer")); + } + version = semVerBuildNumber; + break; } tl.debug(`Version to use: ${version}`); diff --git a/Tasks/NuGetCommandV2/task.json b/Tasks/NuGetCommandV2/task.json index f833587d4c72..97ebcf5d0706 100644 --- a/Tasks/NuGetCommandV2/task.json +++ b/Tasks/NuGetCommandV2/task.json @@ -9,7 +9,7 @@ "author": "Microsoft Corporation", "version": { "Major": 2, - "Minor": 260, + "Minor": 266, "Patch": 0 }, "runsOn": [ @@ -322,7 +322,8 @@ "off": "Off", "byPrereleaseNumber": "Use the date and time", "byEnvVar": "Use an environment variable", - "byBuildNumber": "Use the build number" + "byBuildNumber": "Use the build number", + "bySemVerBuildNumber": "Use full SemVer build number" } }, { diff --git a/Tasks/NuGetCommandV2/task.loc.json b/Tasks/NuGetCommandV2/task.loc.json index f0eb73fb9baa..ad16901b441c 100644 --- a/Tasks/NuGetCommandV2/task.loc.json +++ b/Tasks/NuGetCommandV2/task.loc.json @@ -9,7 +9,7 @@ "author": "Microsoft Corporation", "version": { "Major": 2, - "Minor": 260, + "Minor": 266, "Patch": 0 }, "runsOn": [ @@ -322,7 +322,8 @@ "off": "Off", "byPrereleaseNumber": "Use the date and time", "byEnvVar": "Use an environment variable", - "byBuildNumber": "Use the build number" + "byBuildNumber": "Use the build number", + "bySemVerBuildNumber": "Use full SemVer build number" } }, {