yq/scripts/bump-version.sh
2026-06-06 20:59:43 +10:00

56 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -e
if [ "$1" == "" ]; then
echo "Please specify at a version"
exit 1
fi
version=$1
# validate version is in the right format (bash regex — portable; GNU sed's q1 is not on macOS)
if [[ ! $version =~ ^v4\.[0-9][0-9]\.[0-9][0-9]?$ ]]; then
echo "Please specify a valid version (e.g. v4.53.3)"
exit 1
fi
previousVersion=$(cat cmd/version.go| sed -n 's/.*Version = "\([^"]*\)"/\1/p')
echo "Updating from $previousVersion to $version"
sed "s/\(.*Version =\).*/\1 \"$version\"/" cmd/version.go > cmd/version.go.tmp && mv cmd/version.go.tmp cmd/version.go
go build .
actualVersion=$(./yq --version)
if [ "$actualVersion" != "yq (https://github.com/mikefarah/yq/) version $version" ]; then
echo "Failed to update version.go"
exit 1
else
echo "version.go updated"
fi
version=$version ./yq -i '.version=strenv(version) | .parts.yq.source-tag=strenv(version)' snap/snapcraft.yaml
actualSnapVersion=$(./yq '.version' snap/snapcraft.yaml)
if [ "$actualSnapVersion" != "$version" ]; then
echo "Failed to update snapcraft"
exit 1
else
echo "snapcraft updated"
fi
actualSnapVersion=$(./yq '.parts.yq.source-tag' snap/snapcraft.yaml)
if [ "$actualSnapVersion" != "$version" ]; then
echo "Failed to update snapcraft"
exit 1
else
echo "snapcraft updated"
fi
git add cmd/version.go snap/snapcraft.yaml
git commit -m 'Bumping version'
git tag $version -m "releasing"
git tag -f v4 -m "releasing $version"