#!/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 printf "Checking changelog annotation for chart %s\n" "$root" CURRENT=$(cat Chart.yaml | yq e '.annotations."artifacthub.io/changes"' -P -) if [ "$CURRENT" == "" ] || [ "$CURRENT" == "null" ]; then printf >&2 "%s\n" "Changelog annotation has not been set for this chart!" 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 "%s\n" "Changelog annotation has not been updated!" # exit 1 fi printf "Checking README.md for chart %s\n" "$root" if diff README.md <(git show origin/$DEFAULT_BRANCH:./README.md) >/dev/null; then printf >&2 "%s\n" "README.md has not been updated!" exit 1 fi else printf >&2 "%s\n" "No chart folder has been specified." exit 1 fi