AIFotoOnlus/.gitlab-ci.yml

50 lines
1.6 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 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