forgejo_debian_packager/publish_new_release.sh

54 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
ROOT_DIR=$( dirname $( realpath $0 ) )
set -e
echo "Checking dependencies..."
MISSING_PACKAGES=()
for bin in /usr/bin/curl /usr/bin/xq /usr/bin/sed /usr/bin/git
do
echo -n "- $bin: "
if [ -x "$bin" ]
then
echo "OK"
else
echo "Missing"
MISSING_PACKAGES+=( $(basename $bin) )
fi
done
if [ ${#MISSING_PACKAGES[@]} -gt 0 ]
then
echo "Install missing packages (${MISSING_PACKAGES[@]})..."
apt install -y ${#MISSING_PACKAGES[@]}
fi
LATEST="$1"
if [ -z "$LATEST" ]
then
echo -n "Getting latest release..."
LATEST=$( /usr/bin/curl --silent https://forgejo.org/releases/rss.xml|/usr/bin/xq -x '/rss/channel/item[1]/title'|/usr/bin/sed 's/^v//' )
echo done.
fi
echo "Latest release: $LATEST"
[ -n "$( /usr/bin/git tag -l "$LATEST" )" ] && echo "Release $LATEST already exists" && exit 1
echo "Press [enter] to create and publish this new release"
read
echo "Create new release..."
cd $ROOT_DIR
echo -n "$LATEST" > last_release.txt
/usr/bin/git add last_release.txt
/usr/bin/git commit -m "Release $LATEST"
/usr/bin/git tag "$LATEST"
echo done.
echo "Publish new release..."
/usr/bin/git push
/usr/bin/git push --tags
echo done.