Extract major.minor.patch version from scripts/build.mjs
Update extraction to capture a quoted semver with optional prerelease, strip to major.minor.patch and improve validation messaging
This commit is contained in:
parent
f1745f29f2
commit
8dcf5f2f34
1 changed files with 8 additions and 5 deletions
13
.github/workflows/release.yml
vendored
13
.github/workflows/release.yml
vendored
|
|
@ -43,12 +43,15 @@ jobs:
|
||||||
echo '--- scripts/build.mjs (snippet) ---' >&2
|
echo '--- scripts/build.mjs (snippet) ---' >&2
|
||||||
sed -n '1,200p' scripts/build.mjs >&2 || true
|
sed -n '1,200p' scripts/build.mjs >&2 || true
|
||||||
|
|
||||||
# Primary extraction: find the first quoted four-segment version
|
# Primary extraction: find the first quoted semver (may include prerelease suffix)
|
||||||
version=$(grep -E 'version[:=]' scripts/build.mjs | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -1 || true)
|
raw=$(grep -m1 -oE '"[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?"' scripts/build.mjs | tr -d '"' | head -n1 || true)
|
||||||
|
|
||||||
# Validate final result is exactly major.minor.patch.build
|
# Strip any prerelease suffix, keep only major.minor.patch
|
||||||
if ! printf '%s' "$version" | grep -xE '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' >/dev/null; then
|
version=$(printf '%s' "$raw" | sed -E 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
|
||||||
echo "Failed to extract a valid four-segment version from scripts/build.mjs" >&2
|
|
||||||
|
# Validate final result is exactly major.minor.patch
|
||||||
|
if ! printf '%s' "$version" | grep -xE '^[0-9]+\.[0-9]+\.[0-9]+$' >/dev/null; then
|
||||||
|
echo "Failed to extract a valid base version from scripts/build.mjs" >&2
|
||||||
sed -n '1,200p' scripts/build.mjs >&2 || true
|
sed -n '1,200p' scripts/build.mjs >&2 || true
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue