Skip to content

Commit da4e683

Browse files
committed
Merge branch 'release-chart-script'
2 parents f36f101 + b55135e commit da4e683

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

toolbox/release-chart-version.sh

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
# Script generated by Grok 3 (built by xAI) to manage Helm chart versioning
6+
7+
# Change to parent directory of script using BASH_SOURCE
8+
cd "$(dirname "${BASH_SOURCE[0]}")/.."
9+
10+
# Store Chart.yaml path in variable
11+
CHART_FILE="helm/osm-machinery/Chart.yaml"
12+
13+
# Check if on main branch
14+
current_branch=$(git rev-parse --abbrev-ref HEAD)
15+
if [ "$current_branch" != "main" ]; then
16+
echo "Error: Must be on main branch. Current branch is $current_branch"
17+
exit 1
18+
fi
19+
20+
# Check if working directory is clean
21+
if [ -n "$(git status --porcelain)" ]; then
22+
echo "Error: Working directory is not clean. Please commit or stash changes first."
23+
exit 1
24+
fi
25+
26+
# Get current version from Chart.yaml, handling quoted values
27+
version=$(grep '^version:' "$CHART_FILE" | awk '{print $2}' | tr -d '"')
28+
29+
# Tag current main branch with GPG signature and push tag
30+
git tag -s "v$version" -m "Version $version"
31+
git push origin "v$version"
32+
33+
# Bump patch version (e.g., 1.2.3 -> 1.2.4)
34+
new_version=$(echo "$version" | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')
35+
36+
# Update Chart.yaml with new version, preserving quotes if they existed
37+
if grep '^version: "' "$CHART_FILE" > /dev/null; then
38+
sed -i "s/^version: .*/version: \"$new_version\"/" "$CHART_FILE"
39+
else
40+
sed -i "s/^version: .*/version: $new_version/" "$CHART_FILE"
41+
fi
42+
43+
# Commit the version bump with GPG signature (but don't push)
44+
git add "$CHART_FILE"
45+
git commit -S -m "Bump version to $new_version"

0 commit comments

Comments
 (0)