This repository has been archived on 2023-02-02. You can view files and clone it, but cannot push or open issues or pull requests.
mfgames-markdown-cil/scripts/release.sh

51 lines
1.6 KiB
Bash
Raw Normal View History

2022-09-05 21:41:27 +00:00
#!/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): registering NuGet source"
dotnet nuget add source --name mfgames --username dmoonfire --password $GITEA_TOKEN https://src.mfgames.com/api/packages/mfgames-cil/nuget/index.json --store-password-in-clear-text || exit 1
echo "$(basename $0): publishing NuGet package"
dotnet pack --include-symbols --include-source || exit 1
2022-09-05 21:56:41 +00:00
dotnet nuget push --source mfgames src/*/bin/Debug/*nupkg || exit 1
2022-09-05 21:41:27 +00:00
# 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"
2022-09-05 21:56:41 +00:00
git remote add publish https://dmoonfire:$GITEA_TOKEN@src.mfgames.com/mfgames-cil/$(basename $(git config --get remote.origin.url))
2022-09-05 21:41:27 +00:00
git tag $SEMVER
2022-09-05 21:56:41 +00:00
git push publish $SEMVER || exit 1
git remote remove publish
2022-09-05 21:41:27 +00:00
else
echo "$(basename $0): not tagging, already exists"
fi