From e42c29ac4a0f713494f5dd6270f2312bed1a6def Mon Sep 17 00:00:00 2001 From: Jason Williams Date: Sun, 14 Sep 2025 14:45:54 +0100 Subject: [PATCH] fix: correct stable release logic and workflow trigger configuration --- .github/workflows/beta.yml | 55 ++++++++++++++++++++++------------- .github/workflows/release.yml | 6 ++-- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 75f3c5a..acf9f40 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -64,35 +64,50 @@ jobs: exit 1 fi - - name: Bump prerelease version + - name: Bump version shell: bash run: | CURRENT=$(node -p "require('./package.json').version") echo "Current version: $CURRENT" - # Get the latest alpha version from NPM PKG=$(node -p "require('./package.json').name") PREID="${{ steps.release-type.outputs.preid }}" + RELEASE_TYPE="${{ steps.release-type.outputs.type }}" - # Get the latest alpha version (only 0.x.x versions) - LATEST_ALPHA=$(npm view "$PKG" versions --json | jq -r ".[] | select(startswith(\"0.\") and contains(\"-$PREID.\"))" | tail -1) || echo "" - - if [ -n "$LATEST_ALPHA" ]; then - echo "Latest alpha version: $LATEST_ALPHA" - # Extract the prerelease number and increment it - PRERELEASE_NUM=$(echo "$LATEST_ALPHA" | sed "s/.*-$PREID\.//") - NEW_PRERELEASE_NUM=$((PRERELEASE_NUM + 1)) - # Extract base version (e.g., 0.1.1 from 0.1.1-alpha.1) - BASE_VERSION=$(echo "$LATEST_ALPHA" | sed "s/-$PREID\..*//") - NEW_VERSION="$BASE_VERSION-$PREID.$NEW_PRERELEASE_NUM" + if [[ "$RELEASE_TYPE" == "stable" ]]; then + # For stable releases, get the latest beta version and create clean version + LATEST_BETA=$(npm view "$PKG" versions --json | jq -r ".[] | select(startswith(\"0.\") and contains(\"-beta.\"))" | tail -1) || echo "" + if [ -n "$LATEST_BETA" ]; then + echo "Latest beta version: $LATEST_BETA" + # Extract base version (e.g., 0.1.2 from 0.1.2-beta.2) + BASE_VERSION=$(echo "$LATEST_BETA" | sed "s/-beta\..*//") + NEW_VERSION="$BASE_VERSION" + else + # No beta version exists, bump from current + npm version patch --no-git-tag-version + NEW_VERSION=$(node -p "require('./package.json').version") + fi else - # No alpha version exists, create first one - npm version patch --no-git-tag-version - PATCH_VERSION=$(node -p "require('./package.json').version") - npm version prerelease --preid=$PREID --no-git-tag-version - NEW=$(node -p "require('./package.json').version") - echo "Created first alpha version: $NEW" - exit 0 + # For alpha/beta releases, use prerelease logic + LATEST_PRERELEASE=$(npm view "$PKG" versions --json | jq -r ".[] | select(startswith(\"0.\") and contains(\"-$PREID.\"))" | tail -1) || echo "" + + if [ -n "$LATEST_PRERELEASE" ]; then + echo "Latest prerelease version: $LATEST_PRERELEASE" + # Extract the prerelease number and increment it + PRERELEASE_NUM=$(echo "$LATEST_PRERELEASE" | sed "s/.*-$PREID\.//") + NEW_PRERELEASE_NUM=$((PRERELEASE_NUM + 1)) + # Extract base version (e.g., 0.1.1 from 0.1.1-alpha.1) + BASE_VERSION=$(echo "$LATEST_PRERELEASE" | sed "s/-$PREID\..*//") + NEW_VERSION="$BASE_VERSION-$PREID.$NEW_PRERELEASE_NUM" + else + # No prerelease version exists, create first one + npm version patch --no-git-tag-version + PATCH_VERSION=$(node -p "require('./package.json').version") + npm version prerelease --preid=$PREID --no-git-tag-version + NEW_VERSION=$(node -p "require('./package.json').version") + echo "Created first prerelease version: $NEW_VERSION" + exit 0 + fi fi echo "Setting version to: $NEW_VERSION" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 422307d..7c9386c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,10 +2,8 @@ name: Release (semantic-release) - DISABLED # DISABLED: Using custom alpha/beta workflow instead # This will be re-enabled when we're ready for stable releases -# on: -# push: -# branches: -# - main +on: + workflow_dispatch: # Manual trigger only, no automatic triggers permissions: contents: write