X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=tools%2Fgeneratechangelog-pipeline.sh;h=e4aae94f7bc4b8a480939ced763b7d942f9d18bd;hb=b3daa3a5aa897ea1f0708c520e325bfd682d2a12;hp=c527c54993d72316bed4b8d43c070bb6f465dfcb;hpb=9054244cd2a7451f75157d7fa3ec5d2ff88176be;p=osm%2Fdevops.git diff --git a/tools/generatechangelog-pipeline.sh b/tools/generatechangelog-pipeline.sh index c527c549..e4aae94f 100755 --- a/tools/generatechangelog-pipeline.sh +++ b/tools/generatechangelog-pipeline.sh @@ -1,10 +1,27 @@ #!/bin/bash REPO_NAME=$(basename $(git config --get remote.origin.url) | cut -d'.' -f1) -# get the latest tag -TAG_END="HEAD" -TAG_START=$(git tag | sort -Vr | head -1) git pull --tags origin master &> /dev/null + echo "

$REPO_NAME Changelog

" -echo "

tag: ${TAG_START} -> ${TAG_END}

" -git log --pretty=format:"
  • %h • %s
  • " --reverse ${TAG_START}..${TAG_END} +# get the latest tag +TAG_START=$(git tag | sort -Vr | head -1) + +# check to see if there is a tag start first. +if [ ! -z "${TAG_START}" ]; then + head_tag_diff=$(git rev-list HEAD ^${TAG_START} |wc -l) + if [ $head_tag_diff -eq 0 ]; then + # HEAD and latest tag intersect. Instead try and find a previous tag and use that as the start diff + TAG_END=$TAG_START + TAG_START=$(git tag | sort -Vr | head -2 | sort -V | head -1) + else + TAG_END="HEAD" + fi + + echo "

    tag: ${TAG_START} -> ${TAG_END}

    " + git log --pretty=format:"
  • %h • %s
  • " --reverse ${TAG_START}..${TAG_END} +else + # no tag, just give the full log + git log --pretty=format:"
  • %h • %s
  • " --reverse +fi +