52 lines
1.6 KiB
Bash
Executable file
52 lines
1.6 KiB
Bash
Executable file
#!/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
|
|
rm -f src/*/bin/Debug/*.nupkg
|
|
|
|
# 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 https://src.mfgames.com/api/packages/mfgames-cil/nuget/index.json || exit 1
|
|
dotnet nuget push --api-key $GITEA_TOKEN --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
|