Add tests for emails
[oweals/peertube.git] / scripts / release.sh
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 cd ./client || exit -1
35 npm version --no-git-tag-version --no-commit-hooks $1 || exit -1
36
37 cd ../ || exit -1
38 npm version -f --no-git-tag-version --no-commit-hooks $1 || exit -1
39
40 git commit package.json client/package.json -m "Bumped to version $version" || exit -1
41 git tag -s -a "$version" -m "$version"
42
43 npm run build || exit -1
44 rm "./client/dist/stats.json" || exit -1
45
46 cd ../ || exit -1
47
48 ln -s "PeerTube" "$directory_name" || exit -1
49 zip -r "PeerTube/$zip_name" "$directory_name/CREDITS.md" "$directory_name/FAQ.md" \
50                             "$directory_name/LICENSE" "$directory_name/README.md" \
51                             "$directory_name/client/dist/" "$directory_name/client/yarn.lock" \
52                             "$directory_name/client/package.json" "$directory_name/config" \
53                             "$directory_name/dist" "$directory_name/package.json" \
54                             "$directory_name/scripts" "$directory_name/support" \
55                             "$directory_name/tsconfig.json" "$directory_name/yarn.lock" \
56                             || exit -1
57 rm "$directory_name" || exit -1
58
59 cd "PeerTube" || exit -1
60
61 git push origin --tag
62
63 github-release release --user chocobozzz --repo peertube --tag "$version" --name "$version"
64 github-release upload --user chocobozzz --repo peertube --tag "$version" --name "$zip_name" --file "$zip_name"
65
66 git push origin develop
67
68 # Update master branch
69 git checkout master
70 git rebase develop
71 git push origin master
72 git checkout develop
73