@@ -44,20 +44,50 @@ jobs:
44
44
run : |
45
45
git fetch --unshallow || true
46
46
git-chglog -o CHANGELOG.md
47
- git add CHANGELOG.md
48
- git commit -m "chore(release): update changelog [skip ci]"
49
- git push
47
+ current_version=$(grep -Po '"version": "\K\d+\.\d+\.\d+' package.json)
48
+
49
+ if grep -qE "^\s*feat" CHANGELOG.md; then
50
+ new_version=$(semver --increment minor $current_version)
51
+ elif grep -qE "^\s*fix" CHANGELOG.md; then
52
+ new_version=$(semver --increment patch $current_version)
53
+ else
54
+ new_version=$current_version
55
+ fi
56
+
57
+ sed -i -E "s/\"version\": \"[0-9]+\.[0-9]+\.[0-9]+\"/\"version\": \"$new_version\"/" package.json
58
+
59
+ git add CHANGELOG.md package.json
60
+ git commit -m "chore(release): $new_version [skip ci]"
61
+ git push origin HEAD:main
62
+ - name : Get current version
63
+ id : get_version
64
+ run : echo "PACKAGE_VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
65
+ shell : bash
66
+ - name : Set previous version
67
+ id : set_previous_version
68
+ run : echo "PREVIOUS_VERSION=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
69
+ shell : bash
70
+ - name : Install SemVer
71
+ run : npm i -g semver
72
+ - name : Bump version
73
+ id : bump_version
74
+ run : |
75
+ semver --increment ${{ env.BUMP_TYPE }} ${{ env.PACKAGE_VERSION }} --preid=beta.${{ github.run_number }} -i -f -p 'beta' > version.txt
76
+ echo "NEW_VERSION=$(cat version.txt)" >> $GITHUB_ENV
77
+ shell : bash
78
+ - name : Update package.json
79
+ run : |
80
+ npm version --no-git-tag-version $(cat version.txt)
81
+ shell : bash
50
82
- name : Create a new release
51
- if : github.ref == 'refs/heads/main' && github.event_name == 'push'
52
83
uses : actions/create-release@v1
53
84
env :
54
85
GITHUB_TOKEN : ${{ secrets.GH_TOKEN }}
55
86
with :
56
- tag_name : ${{ github.ref }}
57
- release_name : ${{ github.ref }}
87
+ tag_name : ${{ env.NEW_VERSION }}
88
+ release_name : Release ${{ env.NEW_VERSION }}
58
89
body : |
59
- Release ${{ github.ref }}
60
- $(cat CHANGELOG.md)
90
+ ${{ steps.generate_release_notes.outputs.release_notes }}
61
91
draft : false
62
92
prerelease : false
63
93
0 commit comments