@@ -12,23 +12,56 @@ if [ $(git rev-parse --abbrev-ref HEAD) != "master" ]; then
1212  exit  1
1313fi 
1414
15- #  update the version in package.json
16- sed -i ' '   -e " s/\" version\" : \" .*\" /\" version\" : \" $1 \" /"   package.json
15+ #  ensure master is up to date
16+ git pull
17+ 
18+ #  ensure that there are no uncommitted changes
19+ if  [ -n  " $( git status --porcelain) "   ];  then 
20+   echo  " There are uncommitted changes, exiting" 
21+   exit  1
22+ fi 
23+ 
24+ #  ensure that there are no untracked files
25+ if  [ -n  " $( git ls-files --others --exclude-standard) "   ];  then 
26+   echo  " There are untracked files, exiting" 
27+   exit  1
28+ fi 
1729
30+ #  if the first argument is not a valid semver, exit
31+ if  !  echo  $1  |  grep -qE " ^[0-9]+\.[0-9]+\.[0-9]+$" ;  then 
32+   echo  " Invalid semver, exiting" 
33+   exit  1
34+ fi 
35+ 
36+ #  get the current version from package.json
37+ current_version=$( jq -r ' .version'   package.json) 
38+ 
39+ #  take the version from teh virst argument unless it's "patch" or "minor"
40+ #  don't use the semver tool because it's not installed on the CI
41+ if  [ " $2 "   =  " patch"   ];  then 
42+   version=$( echo $current_version  |  awk -F. -v OFS=. ' {$NF += 1; print}' ) 
43+ elif  [ " $2 "   =  " minor"   ];  then 
44+   version=$( echo $current_version  |  awk -F. -v OFS=. ' {$2 += 1; $NF = 0; print}' ) 
45+ else 
46+   version=$1 
47+ fi 
48+ 
49+ #  update the version in package.json
50+ sed -i ' '   -e " s/\" version\" : \" .*\" /\" version\" : \" $version \" /"   package.json
1851
1952#  update the version in cargo.toml
20- sed -i ' '   -e " s/^version = \" .*\" /version = \" $1  \" /"   Cargo.toml
53+ sed -i ' '   -e " s/^version = \" .*\" /version = \" $version  \" /"   Cargo.toml
2154cargo build
2255
2356#  commit the changes with the version
2457git add Cargo.toml package.json Cargo.lock
25- git commit -m " :rocket: - Release v$1  " 
58+ git commit -m " :rocket: - Release v$version  " 
2659
2760#  tag current commit with the first argument
28- git tag -a v$1   -m " :rocket: - Release v$1  " 
61+ git tag -a v$version   -m " :rocket: - Release v$version  " 
2962
3063#  push the changes
3164git push origin master
3265
3366#  push the tag
34- git push origin v$1  
67+ git push origin v$version  
0 commit comments