-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrelease.sh
executable file
·63 lines (49 loc) · 2.02 KB
/
release.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/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 ".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 "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 --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: ${TOKEN}" \
--data '{ "name": "'${version}'", "tag_name": "'${version}'", "description": "'"${msg}"'", "milestones": ["'${version}'"], "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":"other" }] } }' \
--request POST "https://gitlab.com/api/v4/projects/${PROJECT}/releases"
fi
echo ""
echo Done
exit 0