fix: the tag cache must be deleted when the tag is deleted

Otherwise it will linger and potentially create problem when
using overrides.
This commit is contained in:
limiting-factor 2025-02-23 23:49:15 +01:00
parent e2af55222e
commit 1a6975277b
2 changed files with 26 additions and 4 deletions

View file

@ -59,7 +59,18 @@ ensure_tag() {
return 1 return 1
fi fi
else else
api POST repos/$REPO/tags --data-raw '{"tag_name": "'"$TAG"'", "target": "'"$SHA"'"}' >"$TAG_FILE" create_tag
fi
}
create_tag() {
api POST repos/$REPO/tags --data-raw '{"tag_name": "'"$TAG"'", "target": "'"$SHA"'"}' >"$TAG_FILE"
}
delete_tag() {
if get_tag; then
api DELETE repos/$REPO/tags/$TAG
rm -f "$TAG_FILE"
fi fi
} }
@ -134,7 +145,7 @@ maybe_override() {
fi fi
api DELETE repos/$REPO/releases/tags/"$TAG" >&/dev/null || true api DELETE repos/$REPO/releases/tags/"$TAG" >&/dev/null || true
if get_tag && ! matched_tag; then if get_tag && ! matched_tag; then
api DELETE repos/$REPO/tags/"$TAG" delete_tag
fi fi
} }

View file

@ -39,8 +39,18 @@ test_wait_release() {
! wait_release ! wait_release
} }
test_create_delete_tag() {
delete_tag
! get_tag
create_tag
get_tag
delete_tag
! get_tag
}
test_ensure_tag() { test_ensure_tag() {
api DELETE repos/$REPO/tags/$TAG || true delete_tag
# #
# idempotent # idempotent
# #
@ -59,7 +69,7 @@ test_ensure_tag() {
! matched_tag ! matched_tag
! ensure_tag ! ensure_tag
) )
api DELETE repos/$REPO/tags/$TAG delete_tag
} }
test_maybe_sign_release_no_gpg() { test_maybe_sign_release_no_gpg() {
@ -133,6 +143,7 @@ test_run() {
REPO=$user/$project REPO=$user/$project
test_setup $project test_setup $project
test_ensure_tag test_ensure_tag
test_create_delete_tag
DELAY=0 DELAY=0
test_wait_release_fail test_wait_release_fail
echo "================================ TEST BEGIN" echo "================================ TEST BEGIN"