Skip to content

Commit b9d3656

Browse files
fix: missing semver and invalid target versions
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 56f23a3 commit b9d3656

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

scripts/release/release.sh

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,20 @@ esac
3737
done
3838

3939
# if target version is provided but release type is not, infer release type from version
40-
if [ -n "$TARGET_VERSION" ] && [ -z "$RELEASE_TYPE" ]; then
41-
RELEASE_TYPE=$(node -e "const semver=require('semver');const v='$TARGET_VERSION';const pr=semver.prerelease(v);console.log(pr ? pr[0] : 'release');")
40+
if [ -n "$TARGET_VERSION" ]; then
41+
if ! node -e "require.resolve('semver')" >/dev/null 2>&1; then
42+
echo "Error: 'semver' package not found. Run 'yarn add -D semver' in the repo root." >&2
43+
exit 1
44+
fi
45+
# validate target version
46+
if ! node -e "const semver=require('semver');process.exit(semver.valid('$TARGET_VERSION')?0:1)"; then
47+
echo "Error: TARGET_VERSION '$TARGET_VERSION' is not a valid semver." >&2
48+
exit 1
49+
fi
50+
if [ -z "$RELEASE_TYPE" ]; then
51+
RELEASE_TYPE=$(node -e "const semver=require('semver');const pr=semver.prerelease('$TARGET_VERSION');console.log(pr ? pr[0] : 'release');")
52+
fi
4253
fi
43-
4454
# if parameter is empty, get release type from current version
4555
if [ -z "$RELEASE_TYPE" ]
4656
then

0 commit comments

Comments
 (0)