@@ -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