50 lines
1.4 KiB
Bash
Executable file
50 lines
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
# Check if release notes have been changed
|
|
# Usage ./check-releasenotes.sh path
|
|
|
|
# require yq
|
|
command -v yq >/dev/null 2>&1 || {
|
|
printf >&2 "%s\n" "yq (https://github.com/mikefarah/yq) is not installed. Aborting."
|
|
exit 1
|
|
}
|
|
|
|
# Absolute path of repository
|
|
repository=$(git rev-parse --show-toplevel)
|
|
|
|
# Allow for a specific chart to be passed in as a argument
|
|
if [ $# -ge 1 ] && [ -n "$1" ]; then
|
|
root="$1"
|
|
chart_file="${1}/Chart.yaml"
|
|
if [ ! -f "$chart_file" ]; then
|
|
printf >&2 "File %s\n does not exist.\n" "${chart_file}"
|
|
exit 1
|
|
fi
|
|
|
|
cd $root
|
|
|
|
if [ -z "$DEFAULT_BRANCH" ]; then
|
|
DEFAULT_BRANCH=$(git remote show origin | awk '/HEAD branch/ {print $NF}')
|
|
fi
|
|
|
|
CURRENT=$(cat Chart.yaml | yq e '.annotations."artifacthub.io/changes"' -P -)
|
|
|
|
if [ "$CURRENT" == "" ] || [ "$CURRENT" == "null" ]; then
|
|
printf >&2 "Changelog annotation has not been set in %s!\n" "$chart_file"
|
|
exit 1
|
|
fi
|
|
|
|
DEFAULT_BRANCH=$(git remote show origin | awk '/HEAD branch/ {print $NF}')
|
|
ORIGINAL=$(git show origin/$DEFAULT_BRANCH:./Chart.yaml | yq e '.annotations."artifacthub.io/changes"' -P -)
|
|
|
|
if [ "$CURRENT" == "$ORIGINAL" ]; then
|
|
printf >&2 "Changelog annotation has not been updated in %s!\n" "$chart_file"
|
|
exit 1
|
|
fi
|
|
else
|
|
printf >&2 "%s\n" "No chart folder has been specified."
|
|
exit 1
|
|
fi
|