Skip to content

Commit 0051ad4

Browse files
committed
chore: add release script
1 parent bade900 commit 0051ad4

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

release.sh

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash
2+
3+
PUSH_TO_ORIGIN=false
4+
5+
while getopts "v:p" argv
6+
do
7+
case $argv in
8+
v)
9+
RELEASE_VERSION=$OPTARG
10+
;;
11+
p)
12+
PUSH_TO_ORIGIN=true
13+
;;
14+
esac
15+
done
16+
17+
if [ -z "$RELEASE_VERSION" ]; then
18+
echo -e "\033[0;31m[ERROR]: Missing release version -v option.\033[0m"
19+
exit 1
20+
fi
21+
22+
SEMVER_REGEX="^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(\\-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"
23+
24+
if [[ $RELEASE_VERSION =~ $SEMVER_REGEX ]]; then
25+
echo -e "\033[0;32m[INFO]: Start to release version $RELEASE_VERSION."
26+
else
27+
echo -e "\033[0;31m[ERROR]: Version $RELEASE_VERSION doesn't match the semver scheme $SEMVER_REGEX.\033[0m"
28+
exit 1
29+
fi
30+
31+
git checkout develop && git pull --rebase
32+
git checkout master && git pull --rebase
33+
git merge develop
34+
npx standard-version --release-as $RELEASE_VERSION
35+
git checkout develop
36+
git merge master
37+
38+
if $PUSH_TO_ORIGIN ; then
39+
echo -e "\033[0;32m[INFO]: Push to origin"
40+
git push origin develop
41+
git push origin master
42+
git push --tags
43+
fi
44+
45+
echo -e "\033[0;32m[INFO]: Version $RELEASE_VERSION has been successfully released."

0 commit comments

Comments
 (0)