fix: improve version extraction logic to prevent false positives (#511)
## Description Makes the version extract and replace logic more specific so it wont replace any field that does is not specifically `field` under the detected modules. <!-- Briefly describe what this PR does and why --> ## Type of Change - [ ] New module - [ ] New template - [X] Bug fix - [ ] Feature/enhancement - [ ] Documentation - [ ] Other ## Testing & Validation - [X] Tests pass (`bun test`) - [X] Code formatted (`bun fmt`) - [X] Changes tested locally ## Related Issues #510 <!-- Link related issues or write "None" if not applicable --> --------- Co-authored-by: Atif Ali <atif@coder.com>
This commit is contained in:
parent
5450113939
commit
925c71e641
13
.github/scripts/version-bump.sh
vendored
13
.github/scripts/version-bump.sh
vendored
@ -77,16 +77,19 @@ update_readme_version() {
|
|||||||
in_target_module = 0
|
in_target_module = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/version.*=.*"/ {
|
/^[[:space:]]*version[[:space:]]*=/ {
|
||||||
if (in_target_module) {
|
if (in_target_module) {
|
||||||
gsub(/version[[:space:]]*=[[:space:]]*"[^"]*"/, "version = \"" new_version "\"")
|
match($0, /^[[:space]]*/
|
||||||
|
indent = substr($0, 1, RLENGTH)
|
||||||
|
print indent "version = \"" new_version "\""
|
||||||
in_target_module = 0
|
in_target_module = 0
|
||||||
|
next
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{ print }
|
{ print }
|
||||||
' "$readme_path" > "${readme_path}.tmp" && mv "${readme_path}.tmp" "$readme_path"
|
' "$readme_path" > "${readme_path}.tmp" && mv "${readme_path}.tmp" "$readme_path"
|
||||||
return 0
|
return 0
|
||||||
elif grep -q 'version\s*=\s*"' "$readme_path"; then
|
elif grep -q '^[[:space:]]*version[[:space:]]*=' "$readme_path"; then
|
||||||
echo "⚠️ Found version references but no module source match for $namespace/$module_name"
|
echo "⚠️ Found version references but no module source match for $namespace/$module_name"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@ -148,9 +151,9 @@ main() {
|
|||||||
local current_version
|
local current_version
|
||||||
|
|
||||||
if [ -z "$latest_tag" ]; then
|
if [ -z "$latest_tag" ]; then
|
||||||
if [ -f "$readme_path" ] && grep -q 'version\s*=\s*"' "$readme_path"; then
|
if [ -f "$readme_path" ] && grep -q '^[[:space:]]*version[[:space:]]*=' "$readme_path"; then
|
||||||
local readme_version
|
local readme_version
|
||||||
readme_version=$(grep 'version\s*=\s*"' "$readme_path" | head -1 | sed 's/.*version\s*=\s*"\([^"]*\)".*/\1/')
|
readme_version=$(awk '/^[[:space:]]*version[[:space:]]*=/ { match($0, /"[^"]*"/); print substr($0, RSTART+1, RLENGTH-2); exit }' "$readme_path")
|
||||||
echo "No git tag found, but README shows version: $readme_version"
|
echo "No git tag found, but README shows version: $readme_version"
|
||||||
|
|
||||||
if ! validate_version "$readme_version"; then
|
if ! validate_version "$readme_version"; then
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user