#!/usr/bin/env sh set -e source "$(dirname $0)/version" cd "$(dirname $0)/.." mkdir -p dist TARGET_PATH="dist/release-note" if [ -z "$(command -v release-notary)" ]; then echo "release-notary is not found, skip generating release notes." exit 0 fi if [ -z "${GIT_TAG}" ]; then echo "running this scrpit without tag, skip generating release notes." exit 0 fi GIT_TAG=$(echo "${GIT_TAG}" | grep -E "^v([0-9]+)\.([0-9]+)(\.[0-9]+)?(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$") || true if [ "${GIT_TAG}" = "" ]; then echo "git GIT_TAG is not validated, skip generating release notes." exit 0 fi for tag in $(git tag -l --sort=-v:refname); do if [ "${tag}" = "${GIT_TAG}" ]; then continue fi filterred=$(echo "${tag}" | grep -E "^v([0-9]+)\.([0-9]+)(\.[0-9]+)?(-rc[0-9]*)$") || true if [ "${filterred}" = "" ]; then echo "get real release tag ${tag}, stopping untag" break fi git tag -d ${tag} done echo "following release notes will be published..." release-notary publish -d 2>/dev/null | sed '1d' | sed '$d' > $TARGET_PATH cat "$TARGET_PATH"