AIFotoOnlus/.gitlab-ci.yml
MaddoScientisto 25f41c1513 Update CI to .NET 10, improve versioning and packaging
- Switch CI pipeline to use .NET 10.0 SDK images for build and publish jobs
- Set GIT_DEPTH=0 and fetch full git history for accurate versioning
- Refactor publish_nuget job to sanitize and inject GitVersion output into package version
- Downgrade GitVersion.MsBuild to 5.13.0 to match CLI tool version
- In csproj, set <Version> from sanitized GitVersion output with fallback
- Remove prevent-increment-of-merged-branch-version from GitVersion.yml for main/master
2026-02-15 18:42:35 +01:00

46 lines
1.3 KiB
YAML

stages:
- build
- publish
variables:
DOTNET_CLI_TELEMETRY_OPTOUT: "1"
DOTNET_NOLOGO: "true"
GIT_DEPTH: "0"
image: mcr.microsoft.com/dotnet/sdk:10.0
before_script:
- dotnet --info
build:
stage: build
script:
- dotnet restore
- dotnet build --configuration Release --no-restore
artifacts:
paths:
- src/AIFotoONLUS.Core/bin/**
expire_in: 1 hour
publish_nuget:
stage: publish
image: mcr.microsoft.com/dotnet/sdk:10.0
variables:
NUGET_SOURCE: "$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/nuget/index.json"
script: |
dotnet restore
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 5.13.0 || true
export PATH="$PATH:~/.dotnet/tools"
GITVER=$(gitversion /showvariable NuGetVersionV2)
echo "Raw version: $GITVER"
PACKAGE_VERSION=$(echo "$GITVER" | sed 's/[{}]//g' | 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
only:
- main
- master
- tags