#!/usr/bin/env sh cd $(dirname $0)/.. ./scripts/setup.sh || exit 1 # Verify the input. if [ "x$GITEA_TOKEN" = "x" ] then echo "the environment variable GITEA_TOKEN is not defined" exit 1 fi # Clean up everything from the previous runs. echo "$(basename $0): cleaning project" dotnet clean # Version the file based on the Git repository. echo "$(basename $0): setting project version" (cd src && dotnet dotnet-gitversion /updateprojectfiles) SEMVER="v$(dotnet gitversion /output json | jq -r .SemVer)" if [ "x$SEMVER" = "x" ] then echo "$(basename $0): cannot figure out the semantic version" exit 1 fi # Build to pick up the new version. echo "$(basename $0): building project $SEMVER" dotnet build || exit 1 # Create and publish the NuGet packages. echo "$(basename $0): creating NuGet packages" dotnet pack -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg || exit 1 echo "$(basename $0): publishing NuGet package" dotnet nuget remove source mfgames.com >& /dev/null dotnet nuget add source --name mfgames.com --username dmoonfire --password $GITEA_TOKEN https://src.mfgames.com/api/packages/mfgames-cil/nuget/index.json --store-password-in-clear-text || exit 1 dotnet nuget push --skip-duplicate --source mfgames.com src/*/bin/Debug/*.nupkg || exit 1 # Tag and push, but only if we don't have a tag. if ! git tag | grep $SEMVER >& /dev/null then echo "$(basename $0): tagging and pushing" git remote add publish https://dmoonfire:$GITEA_TOKEN@src.mfgames.com/mfgames-cil/$(basename $(git config --get remote.origin.url)) git tag $SEMVER git push publish $SEMVER || exit 1 git remote remove publish else echo "$(basename $0): not tagging, already exists" fi