55 inputs :
66 force :
77 description : " Force publish even if versions match"
8- required : false
9- default : " false"
8+ type : boolean
9+ default : false
1010 push :
1111 branches : [master]
1212
@@ -15,12 +15,15 @@ jobs:
1515 runs-on : ubuntu-latest
1616 outputs :
1717 new_version : ${{ steps.extract.outputs.new_version }}
18- last_commit_version : ${{ steps.extract.outputs.last_commit_version }}
18+ last_tag : ${{ steps.extract.outputs.last_tag }}
1919 prev_version : ${{ steps.extract.outputs.prev_version }}
2020 changelog : ${{ steps.extract.outputs.changelog }}
2121
2222 steps :
2323 - uses : actions/checkout@v4
24+ with :
25+ fetch-tags : true
26+ fetch-depth : 0
2427
2528 - name : Extract versions
2629 id : version
@@ -35,17 +38,17 @@ jobs:
3538 line3=$(echo "${versions[2]}" | cut -d: -f1 || echo "\$")
3639
3740 new_version=$(echo "${versions[0]}" | sed -E 's/^.*##[[:space:]]*\[?([0-9]+\.[0-9]+\.[0-9]+)\]?.*/\1/')
38- last_commit_version =$(echo "${versions[1]}" | sed -E 's/^.*##[[:space:]]*\[?([0-9]+\.[0-9]+\.[0-9]+)\]?.*/\1/')
39- prev_version =$(git show ${{ steps.prev.outputs.sha }}:package.json | jq -r .version )
41+ prev_version =$(echo "${versions[1]}" | sed -E 's/^.*##[[:space:]]*\[?([0-9]+\.[0-9]+\.[0-9]+)\]?.*/\1/')
42+ last_tag =$(git tag -l | sort -V | tail -n 1 )
4043
4144 changelog=$(sed -n "$line1,$((line2 - 1))p" CHANGELOG.md | tail -n +2)
4245
43- echo "new_version=$new_version" | tee "$GITHUB_OUTPUT"
44- echo "last_commit_version=$last_commit_version" | tee "$GITHUB_OUTPUT"
45- echo "prev_version=$prev_version" | tee "$GITHUB_OUTPUT"
46- echo "changelog<<EOF" | tee "$GITHUB_OUTPUT"
47- echo "$changelog" | tee "$GITHUB_OUTPUT"
48- echo "EOF" | tee "$GITHUB_OUTPUT"
46+ echo "new_version=$new_version" | tee --append "$GITHUB_OUTPUT"
47+ echo "last_tag=$last_tag" | tee --append "$GITHUB_OUTPUT"
48+ echo "prev_version=$prev_version" | tee --append "$GITHUB_OUTPUT"
49+ echo "changelog<<EOF" | tee --append "$GITHUB_OUTPUT"
50+ echo "$changelog" | tee --append "$GITHUB_OUTPUT"
51+ echo "EOF" | tee --append "$GITHUB_OUTPUT"
4952
5053 - name : Verify version matches package.json and package-lock.json
5154 run : |
7174 echo "✅ Versions match"
7275
7376 - name : Create tag and release
74- if : ${{ steps.version.outputs.new_version != steps.version.outputs.last_commit_version || github.event.inputs.force == 'true' }}
77+ if : steps.version.outputs.new_version != steps.version.outputs.last_tag || github.event.inputs.force
7578 uses : softprops/action-gh-release@v1
7679 with :
7780 tag_name : v${{ steps.version.outputs.new_version }}
0 commit comments