mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-02-09 08:16:58 +08:00
81 lines
2.6 KiB
Bash
Executable File
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
|