#!/bin/bash # Script to verify that the versions are updated to reflect the latest release tag in: ## - helm charts' Chart.yaml ## - helm charts' values.yaml ## - helm charts' README ## - README.md ## - version.txt set -euo pipefail REPO_ROOT_PATH="$( cd "$(dirname "$0")"; cd ../../; pwd -P )" MAKEFILE_PATH=$REPO_ROOT_PATH/Makefile LATEST_VERSION=$(make -s -f $MAKEFILE_PATH latest-release-tag | cut -b 2- ) PREVIOUS_VERSION=$(make -s -f $MAKEFILE_PATH previous-release-tag | cut -b 2- ) UPDATE_NEEDED=false print_note() { if [ $UPDATE_NEEDED == true ]; then echo "NOTE: Use \`make update-versions-for-release\` to update AEMM and Helm chart versions in preparation for a release." else echo "✅ Version ($LATEST_VERSION) was successfully verified in README and Helm chart files ✅" fi exit 0 } trap 'print_note' EXIT # Verify version in README README_HAS_INCORRECT_VERSION=$(cat $REPO_ROOT_PATH/README.md | grep $PREVIOUS_VERSION) if [[ ! -z $README_HAS_INCORRECT_VERSION ]]; then echo "❌ Please update AEMM version in README.md. Expected version v$LATEST_VERSION, but got v$PREVIOUS_VERSION ❌" UPDATE_NEEDED=true fi # Verify version in version.txt APP_HAS_INCORRECT_VERSION=$(cat $REPO_ROOT_PATH/pkg/cmd/root/version.txt | grep $PREVIOUS_VERSION) if [[ ! -z $APP_HAS_INCORRECT_VERSION ]]; then echo "❌ Please update AEMM version in pkg/cmd/root/version.txt. Expected version v$LATEST_VERSION, but got v$PREVIOUS_VERSION ❌" UPDATE_NEEDED=true fi # Verify versions in Helm charts HELM_CHART_PATH=$REPO_ROOT_PATH/helm for c in $HELM_CHART_PATH/*; do chart_name=$(echo $c | tr '/' '\n' | tail -1) if [ -d $c ]; then # verify version in values.yaml values_image_tag=$(sed -n 's/[^\s]tag: //p' $c/values.yaml | tr -d '""' | tr -d ' ') if [[ $values_image_tag != "$LATEST_VERSION" ]]; then echo "❌ Please update AEMM version in $chart_name helm chart's values.yaml, image.tag field. Expected version $LATEST_VERSION, but got $values_image_tag ❌" UPDATE_NEEDED=true fi # verify version in Chart.yaml chart_version=$(sed -n 's/version: //p' $c/Chart.yaml) if [[ $chart_version != "$LATEST_VERSION" ]]; then echo "❌ Please update the chart's version in $chart_name chart's Chart.yaml. Expected version $LATEST_VERSION, but got $chart_version ❌" UPDATE_NEEDED=true fi # verify version in the chart's README.md chart_readme_has_incorrect_version=$(cat $c/README.md | grep $PREVIOUS_VERSION) if [[ ! -z $chart_readme_has_incorrect_version ]]; then echo "❌ Please update the chart's version in $chart_name chart's README.md. Expected version $LATEST_VERSION, but got $PREVIOUS_VERSION ❌" UPDATE_NEEDED=true fi fi done