@@ -44,31 +44,30 @@ jobs:
4444 - name : ' Retrieve commit list'
4545 id : gitinfo
4646 run : |
47- currenttag=$(git describe --tags --abbrev=0)
48- while [[ "$currenttag" != "v"* ]]; do
49- # go back until the first version tag
50- currenttag=$(git describe --tags --abbrev=0 $currenttag^)
51- done
52- # now currenttag contains the last proper tag, excluding 'latest' or similar
53- git log $(if [[ -z $currenttag ]]; then echo HEAD; else echo $currenttag..HEAD; fi) --pretty=format:"%C(auto)%h - %s" >> changelog.txt
47+ # get last tag excluding 'latest' and considering only version tags
48+ echo "most recent tags:"
49+ git tag --sort=-creatordate | head -n5
50+ currenttag=$(git tag --sort=-creatordate | grep -v latest | grep "^v[0-9].*" | head -n1)
51+ echo "current tag: $currenttag"
52+ git log $currenttag..HEAD --pretty=format:"%C(auto)%h - %s" > changelog.txt
5453 function join_by {
5554 local d=${1-} f=${2-}
5655 if shift 2; then
57- printf %s "$f" "${@/#/$d}"
56+ printf %s "$f" "${@/#/$d}"
5857 fi
5958 }
6059 # tokenize whenever we transition from numbers to whatever else
6160 # 5.2b4 -> (5 . 2 b 4)
62- currenttag=${currenttag#?} # remove the v
63- nexttag=( $(grep -oE '[0-9]+|[^0-9]+' <<< $currenttag) )
61+ currentver=${currenttag#?} # remove the v
62+ echo "current version: $currentver"
63+ nexttag=( $(grep -oE '[0-9]+|[^0-9]+' <<< $currentver) )
6464 let nexttag[-1]=${nexttag[-1]}+1
6565 nextver=$(join_by "" "${nexttag[@]}")
6666 changelog=$(cat changelog.txt)
67- echo "currentver: $currenttag"
68- echo "nextver: $nextver"
69- echo "changelog: $changelog"
67+ echo "next version: $nextver"
68+ echo "changelog: $changelog.txt"
7069 echo "::set-output name=nextver::$nextver"
71- echo "::set-output name=currentver::$currenttag "
70+ echo "::set-output name=currentver::$currentver "
7271 echo "CHANGELOG<<EOF" >> $GITHUB_ENV
7372 echo "$changelog" >> $GITHUB_ENV
7473 echo "EOF" >> $GITHUB_ENV
0 commit comments