~skiqqy/skelly

9e8d4a1c68ed16b555350d1a1605eb70b66d1adf — Stephen Cochrane 7 months ago f25a8ec
Added script for java projects that assists in authoring a release
1 files changed, 57 insertions(+), 0 deletions(-)

M skelly.sh
M skelly.sh => skelly.sh +57 -0
@@ 199,6 199,63 @@ init_java()
    pp=${pp:-com.example}
    pp=${pp,,}

    mkdir scripts
    cat << EOF > scripts/release.sh
#!/usr/bin/env bash
# Guide the user through a new release
# Written by Stephen Cochrane

set -e

ROOT=\$(realpath "\$(dirname "\$0")/..") # This sets the ROOT to root of the repo

cd "\$ROOT" || exit 1

BRANCH=\$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')

# Currently, we only want to de releases from the master branch, review this
# decision later
if [ ! "\$BRANCH" = master ]
then
    echo "Must be on master branch to do a release"
    exit 1
fi

# Check valid semvar
checkSemvar()
{
    grep -qP '^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$' <<< "\$1"
}

read -rp 'Enter next version: ' version

if ! checkSemvar "\$version"
then
    echo "Invalid semvar, please ensure the version number follows https://semver.org/ spec."
    exit 1
fi

task=install

if grep -q '<distributionManagement>' pom.xml
then
    task=deploy
fi

mvn \$task
tag=v\$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)

# bump to the next version
echo "\$version" | mvn versions:set
rm pom.xml.versionsBackup # delete the backup pom, this is redundent

git tag "\$tag"
git add .
git commit -m "Bump Version: \$version"
git push --atomic origin master "\$tag"
EOF
    chmod +x scripts/release.sh

    cat << EOF > run.sh
#!/usr/bin/env bash
# java wrapper script