X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=tools%2Fgeneratechangelog-pipeline.sh;h=e4aae94f7bc4b8a480939ced763b7d942f9d18bd;hb=e572aab65d8e91ab5af1cb59247f3424380c43e4;hp=e2fa55e4557b6a147a8c28d733d66deff1284a3b;hpb=a3f638ca7670587565a7cf00f02db651c3e29f5a;p=osm%2Fdevops.git diff --git a/tools/generatechangelog-pipeline.sh b/tools/generatechangelog-pipeline.sh index e2fa55e4..e4aae94f 100755 --- a/tools/generatechangelog-pipeline.sh +++ b/tools/generatechangelog-pipeline.sh @@ -1,19 +1,27 @@ #!/bin/bash REPO_NAME=$(basename $(git config --get remote.origin.url) | cut -d'.' -f1) +git pull --tags origin master &> /dev/null + +echo "

$REPO_NAME Changelog

" # get the latest tag TAG_START=$(git tag | sort -Vr | head -1) -head_tag_diff=$(git rev-list $TAG_START ^HEAD |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) +# 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 - TAG_END="HEAD" + # no tag, just give the full log + git log --pretty=format:"
  • %h • %s
  • " --reverse fi -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}