Refactor publish_nuget stage in CI pipeline to streamline dotnet restore and pack commands

This commit is contained in:
MaddoScientisto 2026-02-15 19:35:41 +01:00
commit f6a1aae622

View file

@ -25,27 +25,18 @@ build:
publish_nuget:
stage: publish
image: mcr.microsoft.com/dotnet/sdk:10.0
dependencies:
- build
variables:
NUGET_SOURCE: "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/nuget/index.json"
script: |
dotnet restore
dotnet restore src/AIFotoONLUS.Core/AIFotoONLUS.Core.csproj
git fetch --prune --unshallow || true
git fetch origin +refs/heads/*:refs/remotes/origin/* || true
git branch --show-current || true
dotnet tool install --global GitVersion.Tool --version 6.5.1 || true
export PATH="$PATH:$HOME/.dotnet/tools"
# Debug: show installed dotnet tools and which gitversion is available
dotnet tool list --global || true
echo "which dotnet-gitversion: $(which dotnet-gitversion || true)"
echo "which gitversion: $(which gitversion || true)"
# Debug: print GitVersion variables to aid diagnosis
dotnet-gitversion /showvariable FullSemVer 2>/dev/null || gitversion /showvariable FullSemVer 2>/dev/null || true
dotnet-gitversion /showvariable SemVer 2>/dev/null || gitversion /showvariable SemVer 2>/dev/null || true
dotnet-gitversion /showvariable EscapedBranchName 2>/dev/null || gitversion /showvariable EscapedBranchName 2>/dev/null || true
dotnet-gitversion /showvariable PreReleaseNumber 2>/dev/null || gitversion /showvariable PreReleaseNumber 2>/dev/null || true
dotnet-gitversion /output json > gitversion.json 2>/dev/null || gitversion /output json > gitversion.json 2>/dev/null || true
echo "--- gitversion.json ---"
cat gitversion.json || true
# 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")
@ -53,7 +44,7 @@ publish_nuget:
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" /p:Version="$PACKAGE_VERSION"
dotnet pack src/AIFotoONLUS.Core/AIFotoONLUS.Core.csproj -c Release -o nuget --no-build /p:PackageVersion="$PACKAGE_VERSION" /p:Version="$PACKAGE_VERSION" /p:EnableWindowsTargeting=true
dotnet nuget push "nuget/*.nupkg" --source "$NUGET_SOURCE" --api-key "$CI_JOB_TOKEN" --skip-duplicate
only:
- main