Skip to content

Commit 8d3a521

Browse files
committed
fix(cli): fall back to tags for staging versions
1 parent a4c7726 commit 8d3a521

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

.github/workflows/cli-release-staging.yml

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,28 +56,33 @@ jobs:
5656
RELEASES_JSON=$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" \
5757
"https://api.github.com/repos/CodebuffAI/codebuff/releases?per_page=100")
5858
59-
LATEST_BETA=$(echo "$RELEASES_JSON" | jq -r '.[] | select(.prerelease == true and (.name // "" | test("Codebuff CLI v"))) | .tag_name' | sort -V | tail -n 1)
59+
LATEST_TAG=$(echo "$RELEASES_JSON" | jq -r '.[] | select(.prerelease == true and (.name // "" | test("Codebuff CLI v"))) | .tag_name' | sort -V | tail -n 1)
6060
61-
if [ "$LATEST_BETA" = "null" ]; then
62-
LATEST_BETA=""
61+
if [ "$LATEST_TAG" = "null" ] || [ -z "$LATEST_TAG" ]; then
62+
echo "No existing CLI prerelease found via releases, falling back to tags..."
63+
LATEST_TAG=$(git ls-remote --tags origin "v${BASE_VERSION}-beta.*" | awk '{print $2}' | sed 's@refs/tags/@@' | sort -V | tail -n 1)
6364
fi
6465
65-
if [ -z "$LATEST_BETA" ]; then
66-
echo "No existing CLI beta releases found, starting with beta.1"
67-
NEW_VERSION="${BASE_VERSION}-beta.1"
68-
else
69-
echo "Latest CLI beta tag: $LATEST_BETA"
70-
LATEST_VERSION=${LATEST_BETA#v}
66+
if [ -n "$LATEST_TAG" ] && [[ "$LATEST_TAG" != v* ]]; then
67+
LATEST_TAG="v${LATEST_TAG}"
68+
fi
69+
70+
if [ -n "$LATEST_TAG" ]; then
71+
echo "Latest CLI beta tag: $LATEST_TAG"
72+
LATEST_VERSION=${LATEST_TAG#v}
7173
LATEST_BASE=$(echo "$LATEST_VERSION" | sed 's/-beta\..*$//')
7274
LATEST_BETA_NUM=$(echo "$LATEST_VERSION" | sed 's/.*-beta\.//')
7375
7476
if [ "$LATEST_BASE" = "$BASE_VERSION" ]; then
7577
NEXT=$((LATEST_BETA_NUM + 1))
7678
NEW_VERSION="${BASE_VERSION}-beta.${NEXT}"
7779
else
78-
echo "Base version changed, resetting beta counter"
80+
echo "Base version changed since last prerelease, resetting counter"
7981
NEW_VERSION="${BASE_VERSION}-beta.1"
8082
fi
83+
else
84+
echo "No existing CLI beta tags found, starting with beta.1"
85+
NEW_VERSION="${BASE_VERSION}-beta.1"
8186
fi
8287
8388
echo "New staging version: $NEW_VERSION"

0 commit comments

Comments
 (0)