]>
Commit | Line | Data |
---|---|---|
08535e56 C |
1 | #!/bin/bash |
2 | ||
0e4ffb4b LA |
3 | set -eu |
4 | ||
6b2ef589 C |
5 | shutdown() { |
6 | # Get our process group id | |
0e4ffb4b | 7 | PGID=$(ps -o pgid= $$ | grep -o "[0-9]*") |
6b2ef589 C |
8 | |
9 | # Kill it in a new new process group | |
0e4ffb4b | 10 | setsid kill -- -"$PGID" |
6b2ef589 C |
11 | exit 0 |
12 | } | |
13 | ||
14 | trap "shutdown" SIGINT SIGTERM | |
15 | ||
16 | if [ -z "$1" ]; then | |
17 | echo "Need version as argument" | |
18 | exit -1 | |
19 | fi | |
20 | ||
0e4ffb4b | 21 | if [ -z "$GITHUB_TOKEN" ]; then |
1e5c707b C |
22 | echo "Need GITHUB_TOKEN env set." |
23 | exit -1 | |
24 | fi | |
25 | ||
f05a1c30 C |
26 | branch=$(git symbolic-ref --short -q HEAD) |
27 | if [ "$branch" != "develop" ]; then | |
28 | echo "Need to be on develop branch." | |
29 | exit -1 | |
30 | fi | |
31 | ||
1e5c707b C |
32 | version="v$1" |
33 | directory_name="peertube-$version" | |
34 | zip_name="peertube-$version.zip" | |
35 | ||
e33b53ab C |
36 | changelog=$(awk -v version="$version" '/## v/ { printit = $2 == version }; printit;' CHANGELOG.md | grep -v "$version" | sed '1{/^$/d}') |
37 | ||
0e4ffb4b | 38 | printf "Changelog will be:\n%s\n" "$changelog" |
e33b53ab C |
39 | |
40 | read -p "Are you sure to release? " -n 1 -r | |
41 | echo | |
42 | if [[ ! $REPLY =~ ^[Yy]$ ]] | |
43 | then | |
0e4ffb4b | 44 | exit 0 |
e33b53ab C |
45 | fi |
46 | ||
0e4ffb4b LA |
47 | ( cd client |
48 | npm version --no-git-tag-version --no-commit-hooks "$1" | |
49 | ) | |
6b2ef589 | 50 | |
0e4ffb4b | 51 | npm version -f --no-git-tag-version --no-commit-hooks "$1" |
6b2ef589 | 52 | |
0e4ffb4b | 53 | git commit package.json client/package.json -m "Bumped to version $version" |
1e5c707b | 54 | git tag -s -a "$version" -m "$version" |
6b2ef589 | 55 | |
0e4ffb4b LA |
56 | npm run build |
57 | rm "./client/dist/stats.json" | |
08535e56 | 58 | |
0e4ffb4b | 59 | cd .. |
519b8df5 | 60 | |
0e4ffb4b | 61 | ln -s "PeerTube" "$directory_name" |
1e5c707b C |
62 | zip -r "PeerTube/$zip_name" "$directory_name/CREDITS.md" "$directory_name/FAQ.md" \ |
63 | "$directory_name/LICENSE" "$directory_name/README.md" \ | |
64 | "$directory_name/client/dist/" "$directory_name/client/yarn.lock" \ | |
65 | "$directory_name/client/package.json" "$directory_name/config" \ | |
66 | "$directory_name/dist" "$directory_name/package.json" \ | |
67 | "$directory_name/scripts" "$directory_name/support" \ | |
0e4ffb4b LA |
68 | "$directory_name/tsconfig.json" "$directory_name/yarn.lock" |
69 | ||
70 | rm "$directory_name" | |
1e5c707b | 71 | |
0e4ffb4b | 72 | cd "PeerTube" |
1e5c707b C |
73 | |
74 | git push origin --tag | |
75 | ||
e33b53ab | 76 | github-release release --user chocobozzz --repo peertube --tag "$version" --name "$version" --description "$changelog" |
9a05ef50 | 77 | github-release upload --user chocobozzz --repo peertube --tag "$version" --name "$zip_name" --file "$zip_name" |
f05a1c30 | 78 | |
0edf0581 C |
79 | git push origin develop |
80 | ||
f05a1c30 C |
81 | # Update master branch |
82 | git checkout master | |
83 | git rebase develop | |
fe452e0c | 84 | git push origin master |
f05a1c30 C |
85 | git checkout develop |
86 |