|
| 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