Refactor NuGet package versioning logic to use MajorMinorPatch, EscapedBranchName, and PreReleaseNumber

This commit is contained in:
MaddoScientisto 2026-02-15 19:13:00 +01:00
commit a90da31e53

View file

@ -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