mirror of
https://github.com/wfxr/forgit.git
synced 2026-09-10 07:16:23 -04:00
meta: do not create tag when there are no public changes
This commit is contained in:
parent
755b3dd9f8
commit
fc698e004e
23
.github/scripts/tag.sh
vendored
23
.github/scripts/tag.sh
vendored
|
|
@ -2,12 +2,31 @@
|
|||
|
||||
set -e
|
||||
|
||||
tag_has_public_changes=false
|
||||
|
||||
previous_tag=$(git describe --tags --abbrev=0 HEAD~)
|
||||
|
||||
# Enable case-insensitive matching
|
||||
shopt -s nocasematch
|
||||
|
||||
# Loop through all commits since previous tag
|
||||
for rev in $(git log "$previous_tag"..HEAD --format="%H" --reverse --no-merges); do
|
||||
summary=$(git log "$rev"~.."$rev" --format="%s")
|
||||
# Exclude commits starting with "Meta"
|
||||
if [[ $summary != Meta* ]]; then
|
||||
tag_has_public_changes=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
head_tag=$(git describe --exact-match 2>/dev/null || true)
|
||||
|
||||
git log --color=always --format="%C(auto)%h %s%d" | head
|
||||
|
||||
if [[ ${head_tag} =~ [\d{2}\.\d{2}\.\d+] ]]
|
||||
then
|
||||
if ! $tag_has_public_changes; then
|
||||
echo "No public changes since $previous_tag." >&2
|
||||
exit 1
|
||||
elif [[ ${head_tag} =~ [\d{2}\.\d{2}\.\d+] ]]; then
|
||||
echo "Version tag ${head_tag} already exists."
|
||||
else
|
||||
git config --local user.email "github-actions@users.noreply.github.com"
|
||||
|
|
|
|||
Loading…
Reference in a new issue