Skip to content

Commit 36822a0

Browse files
committed
fix(release): improve version update script robustness
- Add semantic version format validation - Add file existence checks before modification - Implement error recovery with backup restoration - Add comprehensive error handling and logging - Prevent invalid version formats from being applied
1 parent cc037b7 commit 36822a0

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

scripts/update-version.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,31 @@ if [ -z "$NEW_VERSION" ]; then
1313
exit 1
1414
fi
1515

16+
# Validate version format (semantic versioning)
17+
if ! [[ $NEW_VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$ ]]; then
18+
echo "Error: Invalid version format. Expected semantic version (e.g., 1.0.0, 1.0.0-beta.1)"
19+
exit 1
20+
fi
21+
1622
echo "Updating version to $NEW_VERSION"
1723

24+
# Check if Version.swift exists
25+
if [ ! -f "Sources/Helpers/Version.swift" ]; then
26+
echo "Error: Sources/Helpers/Version.swift not found"
27+
exit 1
28+
fi
29+
1830
# Update Version.swift
1931
sed -i.bak "s/private let _version = \"[^\"]*\"/private let _version = \"$NEW_VERSION\"/" Sources/Helpers/Version.swift
2032

33+
# Verify the change was made
34+
if ! grep -q "private let _version = \"$NEW_VERSION\"" Sources/Helpers/Version.swift; then
35+
echo "Error: Failed to update version in Sources/Helpers/Version.swift"
36+
# Restore backup
37+
mv Sources/Helpers/Version.swift.bak Sources/Helpers/Version.swift
38+
exit 1
39+
fi
40+
2141
# Clean up backup file
2242
rm -f Sources/Helpers/Version.swift.bak
2343

0 commit comments

Comments
 (0)