Skip to content

Commit 74f8335

Browse files
authored
Merge pull request #3 from MMarcus95/feature2
fix clean release
2 parents 37c685c + 6280c9b commit 74f8335

1 file changed

Lines changed: 42 additions & 17 deletions

File tree

.github/workflows/cleanup-temp-releases.yml

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,33 +36,58 @@ jobs:
3636
3737
- name: Delete all temporary releases and tags for merged branch
3838
run: |
39-
PREFIX="temp-${SAFE_BRANCH}-v"
39+
set -euo pipefail
4040
41-
echo "Looking for releases with prefix: $PREFIX"
41+
PREFIX="temp-${SAFE_BRANCH}-v"
4242
43-
RELEASE_TAGS="$(
44-
gh release list \
45-
--limit 1000 \
46-
--json tagName \
47-
--jq '.[] | .tagName | select(test("^'"${PREFIX}"'[0-9]+$"))'
43+
echo "Repository: ${GITHUB_REPOSITORY}"
44+
echo "Looking for temp releases with prefix: ${PREFIX}"
45+
46+
gh api \
47+
--paginate \
48+
"repos/${GITHUB_REPOSITORY}/releases" \
49+
--jq '.[] | [.id, .tag_name] | @tsv' \
50+
> releases.tsv
51+
52+
echo "All release tags currently visible:"
53+
cut -f2 releases.tsv || true
54+
55+
MATCHES="$(
56+
awk -v prefix="$PREFIX" '
57+
BEGIN { prefix_len = length(prefix) }
58+
index($2, prefix) == 1 {
59+
suffix = substr($2, prefix_len + 1)
60+
if (suffix ~ /^[0-9]+$/) {
61+
print $1 "\t" $2
62+
}
63+
}
64+
' releases.tsv
4865
)"
4966
50-
if [ -z "$RELEASE_TAGS" ]; then
51-
echo "No temporary releases found for branch: $BRANCH_NAME"
67+
if [ -z "$MATCHES" ]; then
68+
echo "No matching temporary releases found for branch: ${BRANCH_NAME}"
69+
echo "Expected tags like: ${PREFIX}1, ${PREFIX}2, ${PREFIX}3"
5270
exit 0
5371
fi
5472
55-
echo "Found temporary releases:"
56-
echo "$RELEASE_TAGS"
73+
echo "Matching releases to delete:"
74+
echo "$MATCHES"
5775
58-
echo "$RELEASE_TAGS" | while IFS= read -r TAG; do
59-
if [ -z "$TAG" ]; then
76+
echo "$MATCHES" | while IFS="$(printf '\t')" read -r RELEASE_ID TAG; do
77+
if [ -z "$RELEASE_ID" ] || [ -z "$TAG" ]; then
6078
continue
6179
fi
6280
63-
echo "Deleting release and tag: $TAG"
81+
echo "Deleting release id=${RELEASE_ID}, tag=${TAG}"
82+
83+
gh api \
84+
--method DELETE \
85+
"repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}"
86+
87+
echo "Deleting git tag ref: ${TAG}"
6488
65-
gh release delete "$TAG" \
66-
--yes \
67-
--cleanup-tag
89+
gh api \
90+
--method DELETE \
91+
"repos/${GITHUB_REPOSITORY}/git/refs/tags/${TAG}" \
92+
|| echo "Tag ${TAG} was already deleted or did not exist"
6893
done

0 commit comments

Comments
 (0)