argo-helm/scripts/renovate-bump-version.sh

42 lines
1.4 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
while getopts c:d:v: opt; do
case ${opt} in
c) chart=${OPTARG} ;;
d) dependency_name=${OPTARG} ;;
v) dependency_version=${OPTARG} ;;
*)
echo 'Usage:' >&2
echo '-c: chart Related Helm chart name' >&2
echo '-d dependency Name of the updated dependency' >&2
echo '-v version New version of the updated dependency' >&2
exit 1
esac
done
if [ -z "${dependency_name}" ] || [ -z "${dependency_version}" ] || [ -z "${chart}" ] ; then
echo 'Missing relevant CLI flag(s).' >&2
exit 1
fi
chart_yaml_path="charts/${chart}/Chart.yaml"
# Split dependency by '/' and only use last element
# This way we can drop prefixes like "argoproj/..." , "argoproj-labs/..." , "quay.io/foo/..."
dependency_name="${dependency_name##*/}"
# Bump the chart version by one patch version
version=$(grep '^version:' "${chart_yaml_path}" | awk '{print $2}')
major=$(echo "${version}" | cut -d. -f1)
minor=$(echo "${version}" | cut -d. -f2)
patch=$(echo "${version}" | cut -d. -f3)
patch=$((patch + 1))
sed -i "s/^version:.*/version: ${major}.${minor}.${patch}/g" "${chart_yaml_path}"
# Add a changelog entry
sed -i -e '/^ artifacthub.io\/changes: |/,$ d' "${chart_yaml_path}"
{
echo " artifacthub.io/changes: |"
echo " - kind: changed"
echo " description: Bump ${dependency_name} to ${dependency_version}"
} >> "${chart_yaml_path}"
cat "${chart_yaml_path}"