From a90da31e531332a4cf0bafe604f89d0e14f3395a Mon Sep 17 00:00:00 2001 From: MaddoScientisto Date: Sun, 15 Feb 2026 19:13:00 +0100 Subject: [PATCH] Refactor NuGet package versioning logic to use MajorMinorPatch, EscapedBranchName, and PreReleaseNumber --- .gitlab-ci.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad7d473..8f4df87 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,13 +34,12 @@ publish_nuget: git branch --show-current || true - dotnet tool install --global GitVersion.Tool --version 6.5.1 || true export PATH="$PATH:~/.dotnet/tools" - GITVER=$(gitversion /showvariable NuGetVersionV2 || true) - echo "Raw version: $GITVER" - PACKAGE_VERSION=$(echo "$GITVER" | sed 's/[{}]//g' | sed 's/[^0-9A-Za-z.-]//g' | sed 's#/+#-#g') - if echo "$PACKAGE_VERSION" | grep -Eq '[{}]'; then - echo "Computed package version still contains invalid characters; falling back to CI-based version" - PACKAGE_VERSION="0.1.0-ci.$CI_COMMIT_SHORT_SHA" - fi + # Build a NuGet-safe version: MajorMinorPatch-EscapedBranchName.PreReleaseNumber + MM=$(dotnet-gitversion /showvariable MajorMinorPatch 2>/dev/null || gitversion /showvariable MajorMinorPatch 2>/dev/null || echo "0.1.0") + BR=$(dotnet-gitversion /showvariable EscapedBranchName 2>/dev/null || gitversion /showvariable EscapedBranchName 2>/dev/null || echo "master") + PR=$(dotnet-gitversion /showvariable PreReleaseNumber 2>/dev/null || gitversion /showvariable PreReleaseNumber 2>/dev/null || echo "0") + PACKAGE_VERSION="${MM}-${BR}.${PR}" + PACKAGE_VERSION=$(echo "$PACKAGE_VERSION" | sed 's/[^0-9A-Za-z.-]//g') echo "Package version: $PACKAGE_VERSION" dotnet pack src/AIFotoONLUS.Core/AIFotoONLUS.Core.csproj -c Release -o nuget /p:PackageVersion="$PACKAGE_VERSION" dotnet nuget push "nuget/*.nupkg" --source "$NUGET_SOURCE" --api-key "$CI_JOB_TOKEN" --skip-duplicate