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 src/AIFotoONLUS.Core/AIFotoONLUS.Core.csproj - dotnet build src/AIFotoONLUS.Core/AIFotoONLUS.Core.csproj --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 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 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