@@ -49,29 +49,44 @@ jobs:
4949 id : version
5050 if : steps.changesets-check.outputs.has_changesets == 'true'
5151 run : |
52+ # Store original versions before changeset
53+ ORIGINAL_MAIN=$(node -p "require('./package.json').version" | sed 's/-beta\.[0-9]*//g')
54+ declare -A ORIGINAL_VERSIONS
55+ for pkg in packages/*/; do
56+ if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
57+ PKG_NAME=$(basename "$pkg")
58+ ORIGINAL_VERSIONS[$PKG_NAME]=$(cd "$pkg" && node -p "require('./package.json').version" | sed 's/-beta\.[0-9]*//g')
59+ fi
60+ done
61+
5262 # Apply changesets and consume them
5363 pnpm changeset version
5464
55- # Update to beta versions
56- MAIN_VERSION=$(node -p "require('./package.json').version")
65+ # Check for version changes and update to beta
5766 TIMESTAMP=$(date +%s)
67+ CHANGED_PACKAGES=""
5868
59- # Remove ALL existing beta suffixes if present and add new one
60- CLEAN_VERSION=$(echo "$MAIN_VERSION" | sed 's/-beta\.[0-9]*//g')
61- BETA_VERSION="${CLEAN_VERSION}-beta.${TIMESTAMP}"
62-
63- # Update main package
64- npm version $BETA_VERSION --no-git-tag-version
69+ # Check main package
70+ NEW_MAIN=$(node -p "require('./package.json').version")
71+ if [ "$ORIGINAL_MAIN" != "$NEW_MAIN" ]; then
72+ BETA_VERSION="${NEW_MAIN}-beta.${TIMESTAMP}"
73+ npm version $BETA_VERSION --no-git-tag-version
74+ CHANGED_PACKAGES="vue-pivottable"
75+ fi
6576
66- # Update sub-packages
77+ # Check sub-packages
6778 for pkg in packages/*/; do
6879 if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
6980 cd "$pkg"
70- PKG_VERSION=$(node -p "require('./package.json').version")
71- # Remove ALL existing beta suffixes if present and add new one
72- PKG_CLEAN=$(echo "$PKG_VERSION" | sed 's/-beta\.[0-9]*//g')
73- PKG_BETA="${PKG_CLEAN}-beta.${TIMESTAMP}"
74- npm version $PKG_BETA --no-git-tag-version
81+ PKG_NAME=$(basename "$pkg")
82+ NEW_VERSION=$(node -p "require('./package.json').version")
83+
84+ # Only add beta if version changed
85+ if [ "${ORIGINAL_VERSIONS[$PKG_NAME]}" != "$NEW_VERSION" ]; then
86+ PKG_BETA="${NEW_VERSION}-beta.${TIMESTAMP}"
87+ npm version $PKG_BETA --no-git-tag-version
88+ CHANGED_PACKAGES="$CHANGED_PACKAGES $PKG_NAME"
89+ fi
7590 cd -
7691 fi
7792 done
@@ -80,10 +95,17 @@ jobs:
8095 git config user.name "github-actions[bot]"
8196 git config user.email "github-actions[bot]@users.noreply.github.com"
8297 git add -A
83- git commit -m "chore: prepare beta release"
98+ git commit -m "chore: prepare beta release
99+
100+ Changed packages: $CHANGED_PACKAGES"
84101 git push origin develop
85102
86- echo "version=$BETA_VERSION" >> $GITHUB_OUTPUT
103+ # Use main package version for output (if changed) or first changed package
104+ if [ "$ORIGINAL_MAIN" != "$NEW_MAIN" ]; then
105+ echo "version=${NEW_MAIN}-beta.${TIMESTAMP}" >> $GITHUB_OUTPUT
106+ else
107+ echo "version=beta.${TIMESTAMP}" >> $GITHUB_OUTPUT
108+ fi
87109
88110 - name : Run quality checks
89111 if : steps.changesets-check.outputs.has_changesets == 'true'
@@ -130,7 +152,7 @@ jobs:
130152 if : steps.changesets-check.outputs.has_changesets == 'true' && steps.create-release.outcome == 'success'
131153 run : |
132154 # Publish with beta tag only after GitHub release is created
133- node scripts/release-packages-beta.js
155+ RELEASE_TAG=beta node scripts/release-packages.cjs
134156 env :
135157 NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
136158 NPM_TOKEN : ${{ secrets.NPM_TOKEN }}
0 commit comments