From 482f3a7fc66f1b93a1b7e24e00a87c9858574ebd Mon Sep 17 00:00:00 2001 From: kaitranntt Date: Thu, 4 Dec 2025 01:26:05 -0500 Subject: [PATCH] fix(dev-release): find next available dev version from npm --- .github/workflows/dev-release.yml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dev-release.yml b/.github/workflows/dev-release.yml index e0f08d78..8282d7cb 100644 --- a/.github/workflows/dev-release.yml +++ b/.github/workflows/dev-release.yml @@ -43,18 +43,32 @@ jobs: id: bump run: | CURRENT=$(cat VERSION) + PKG_NAME=$(jq -r '.name' package.json) - # Extract base version and dev number + # Extract base version if [[ "$CURRENT" =~ ^([0-9]+\.[0-9]+\.[0-9]+)(-dev\.([0-9]+))?$ ]]; then BASE="${BASH_REMATCH[1]}" - DEV_NUM="${BASH_REMATCH[3]:-0}" - NEW_DEV=$((DEV_NUM + 1)) - NEW_VERSION="${BASE}-dev.${NEW_DEV}" else echo "Invalid version format: $CURRENT" exit 1 fi + # Find highest published dev version for this base + LATEST_DEV=$(npm view "${PKG_NAME}" versions --json 2>/dev/null | \ + jq -r '.[]' | \ + grep "^${BASE}-dev\." | \ + sed "s/${BASE}-dev\.//" | \ + sort -n | \ + tail -1) + + if [[ -z "$LATEST_DEV" ]]; then + NEW_DEV=1 + else + NEW_DEV=$((LATEST_DEV + 1)) + fi + + NEW_VERSION="${BASE}-dev.${NEW_DEV}" + echo "current=$CURRENT" >> $GITHUB_OUTPUT echo "new=$NEW_VERSION" >> $GITHUB_OUTPUT echo "Bumping: $CURRENT -> $NEW_VERSION"