2022-04-01 23:30:27 -05:00
#!/usr/bin/env sh
2022-04-02 16:42:32 -05:00
2022-04-01 23:30:27 -05:00
cd $( dirname $0 ) /..
2022-04-02 16:42:32 -05:00
./scripts/setup.sh || exit 1
2022-04-01 23:30:27 -05:00
2022-04-02 16:42:32 -05:00
# Verify the input.
2022-09-05 22:06:02 -05:00
if [ " x $GITEA_TOKEN " = "x" ]
2022-04-02 16:42:32 -05:00
then
2022-09-05 22:06:02 -05:00
echo "the environment variable GITEA_TOKEN is not defined"
2022-04-02 16:42:32 -05:00
exit 1
fi
# Clean up everything from the previous runs.
2022-09-05 22:06:02 -05:00
echo " $( basename $0 ) : cleaning project "
2022-04-01 23:30:27 -05:00
dotnet clean
2022-04-02 23:44:57 -05:00
2022-04-02 16:42:32 -05:00
# Version the file based on the Git repository.
2022-09-05 22:06:02 -05:00
echo " $( basename $0 ) : setting project version "
2022-04-02 16:42:32 -05:00
( cd src && dotnet dotnet-gitversion /updateprojectfiles)
2022-04-02 23:44:57 -05:00
SEMVER = " v $( dotnet gitversion /output json | jq -r .SemVer) "
if [ " x $SEMVER " = "x" ]
then
2022-09-05 22:06:02 -05:00
echo " $( basename $0 ) : cannot figure out the semantic version "
2022-04-02 23:44:57 -05:00
exit 1
fi
2022-04-02 16:42:32 -05:00
# Build to pick up the new version.
2022-09-05 22:06:02 -05:00
echo " $( basename $0 ) : building project $SEMVER "
dotnet build || exit 1
2022-04-02 16:42:32 -05:00
# Create and publish the NuGet packages.
2022-09-05 22:06:02 -05:00
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
2022-04-02 23:44:57 -05:00
# Tag and push, but only if we don't have a tag.
if ! git tag | grep $SEMVER >& /dev/null
then
2022-09-05 22:06:02 -05:00
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) )
2022-04-02 23:44:57 -05:00
git tag $SEMVER
2022-09-05 22:06:02 -05:00
git push publish $SEMVER || exit 1
git remote remove publish
2022-04-02 23:44:57 -05:00
else
2022-09-05 22:06:02 -05:00
echo " $( basename $0 ) : not tagging, already exists "
2022-04-02 23:44:57 -05:00
fi