Files
ocserv/release.sh
Nikos Mavrogiannopoulos 2a17ffb874 release.sh: use package type for tarball
Signed-off-by: Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>
2024-01-24 10:26:35 +01:00

81 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
echo "This script will send the tarballs to infradead and create tags and release at gitlab"
echo "It will use your ssh keys and gitlab token as placed in ~/.gitlab-token"
echo "Press enter to continue..."
read
if test -z "$1";then
echo "usage: $0 [VERSION]"
echo "No version was specified"
exit 1
fi
if ! test -f "$(expr ~/.gitlab-token)";then
echo "Cannot find .gitlab-token"
exit 1
fi
PROJECT=473862
TOKEN=$(cat ~/.gitlab-token)
version=$1
file=ocserv-${version}.tar.xz
echo "Signing artifacts as generated by 'make dist'"
echo "Press enter to continue or type skip to skip..."
read s
if test "$s" != "s" && test "$s" != "skip";then
gpg --sign --detach ${file}
scp ${file}* casper.infradead.org:/var/ftp/pub/ocserv/
fi
echo "Creating tag $version and gitlab release"
echo "Press enter to continue or type skip to skip..."
read s
if test "$s" != "s" && test "$s" != "skip";then
git tag -s ${version} -m "Released ${version}"
git push origin ${version}
fi
echo ""
echo "Checking for $version milestone"
echo "Press enter to continue or type skip to skip..."
read s
milestones=''
if test "$s" != "s" && test "$s" != "skip";then
curl -s --header "PRIVATE-TOKEN: ${TOKEN}" "https://gitlab.com/api/v4/projects/${PROJECT}/milestones?title=$version"|grep "$version" >/dev/null 2>&1
if [[ $? = 0 ]];then
echo "Milestone $version will be linked to release"
milestones=' "milestones": [ "'${version}'" ],'
else
echo "No matching milestones"
milestones=''
fi
fi
echo "Creating gitlab $version release"
echo "Press enter to continue or type skip to skip..."
read s
if test "$s" != "s" && test "$s" != "skip";then
line=$(grep -n "Version ${version}" NEWS|cut -d ':' -f 1)
test -z "$line" && exit 1
stopline="$(head -n 100 NEWS|tail -n $((100-$line))|grep -n Version|head -1|cut -d ':' -f 1)"
test -z "$stopline" && exit 1
msg=$(head -n 100 NEWS|tail -n +$((1+$line))|head -n $(($stopline-1))|tr -d '"'|tr -d "'"|sed '{:q;N;s/\n/\\n/g;t q}')
set -e
curl -s --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: ${TOKEN}" \
--data '{ "name": "'${version}'", "tag_name": "'${version}'", "description": "'"${msg}"'", '"${milestones}"' "assets": { "links": [{ "name": "PGP signature", "url": "https://www.infradead.org/ocserv/download/ocserv-'${version}'.tar.xz.sig", "link_type":"other" }, { "name": "Tarball", "url": "https://www.infradead.org/ocserv/download/ocserv-'${version}'.tar.xz", "link_type":"package" }] } }' \
--request POST "https://gitlab.com/api/v4/projects/${PROJECT}/releases" | jq
fi
echo ""
echo "release is ready: https://gitlab.com/openconnect/ocserv/-/releases"
exit 0