@@ -63,24 +63,37 @@ jobs:
63
63
- name : Generate preview version
64
64
run : |
65
65
pr_number=${{ github.event.pull_request.number }}
66
-
67
- # Check if a prerelease version for this PR already exists on npm
68
- existing_versions=$(npm view svelteplot versions --json 2>/dev/null | grep -o "\".* pr-${pr_number}[.] [0-9]*\"" || echo "")
69
-
66
+
67
+ # Get existing versions like ["0.2.7-pr-65.0", "0.2.7-pr-65.1"]
68
+ existing_versions=$(npm view svelteplot versions --json 2>/dev/null | grep -o "\"[0-9]*\.[0-9]*\.[0-9]*- pr-${pr_number}\. [0-9]*\"" || echo "")
69
+
70
70
if [ -n "$existing_versions" ]; then
71
- # Get the latest prerelease version for this PR
71
+ # Get the highest existing prerelease number
72
72
latest_version=$(echo $existing_versions | sed 's/,/\n/g' | sort -V | tail -n 1 | sed 's/"//g')
73
+
73
74
echo "Found existing prerelease version: $latest_version"
74
75
75
- # Set the package version to the existing version so npm version will properly increment
76
- npm version $latest_version --no-git-tag-version
76
+ # Extract base version and prerelease number
77
+ base_version=$(echo $latest_version | sed -E "s/-pr-${pr_number}\.[0-9]+//")
78
+ prerelease_num=$(echo $latest_version | sed -E "s/.*-pr-${pr_number}\.([0-9]+)$/\1/")
79
+
80
+ # Increment prerelease number
81
+ next_prerelease=$((prerelease_num + 1))
82
+
83
+ next_version="${base_version}-pr-${pr_number}.${next_prerelease}"
84
+
85
+ echo "Bumping to next prerelease version: $next_version"
86
+
87
+ # Update package.json
88
+ npm version "$next_version" --no-git-tag-version
89
+ else
90
+ # No existing prerelease, create a fresh one off the current version
91
+ npm version prerelease --preid=pr-${pr_number} --no-git-tag-version
77
92
fi
78
-
79
- # Now increment the prerelease version (or create it if it doesn't exist)
80
- npm version prerelease --preid=pr-${pr_number} --no-git-tag-version
81
-
93
+
82
94
echo "Generated version: $(node -p "require('./package.json').version")"
83
95
96
+
84
97
- name : Publish to npm
85
98
env :
86
99
NODE_AUTH_TOKEN : ${{ secrets.NPM_AUTH }}
0 commit comments