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