Compare commits

..
2 Commits
Author SHA1 Message Date
volker.raschek 3047c7cc73 chore(deps): update action volker-raschek/ah-annotations to v0.1.2
Helm / helm-lint (push) Successful in 7s
Helm / helm-unittest (push) Successful in 29s
Release / publish-chart (push) Successful in 3m15s
2026-08-16 22:31:01 +02:00
volker.raschekandCopilot a10b2801d2 refactor(ci): replace inline annotation script with ah-annotations action
Helm / helm-lint (push) Successful in 7s
Helm / helm-unittest (push) Successful in 28s
Release / publish-chart (push) Successful in 2m56s
Remove the local add-annotations.sh script and the inline tag detection
logic from the release workflow. Use the reusable GitHub Action
volker-raschek/ah-annotations@v0.1.1 which handles tag detection and
changelog generation internally.

Co-authored-by: Copilot <copilot@github.com>
2026-08-16 21:58:47 +02:00
2 changed files with 1 additions and 139 deletions
-133
View File
@@ -1,133 +0,0 @@
#!/bin/bash
# ============================================================================
# Generate ArtifactHub changelog annotations from git commit history
# ============================================================================
set -euo pipefail
readonly CHART_FILE="Chart.yaml"
readonly RC_PATTERN="\-rc([-\.][0-9]+)?$"
CHANGE_LOG_YAML=""
cleanup() {
if [[ -n "${CHANGE_LOG_YAML:-}" && -f "${CHANGE_LOG_YAML}" ]]; then
rm -f "${CHANGE_LOG_YAML}"
fi
}
trap cleanup EXIT
if [[ ! -f "${CHART_FILE}" ]]; then
echo "ERROR: ${CHART_FILE} not found!" >&2
exit 1
fi
# Exclude prerelease tags (matching -rc or -rc.<digits>) from default tag selection
DEFAULT_NEW_TAG="$(git tag --sort=-version:refname | grep --invert-match --perl-regexp "${RC_PATTERN}" | head --lines 1)"
DEFAULT_OLD_TAG="$(git tag --sort=-version:refname | grep --invert-match --perl-regexp "${RC_PATTERN}" | head --lines 2 | tail --lines 1)"
if [[ -z "${1:-}" ]]; then
read -rp "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG
if [[ -z "${OLD_TAG}" ]]; then
OLD_TAG="${DEFAULT_OLD_TAG}"
fi
while [[ -z "$(git tag --list "${OLD_TAG}")" ]]; do
echo "ERROR: Tag '${OLD_TAG}' not found!" >&2
read -rp "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG
if [[ -z "${OLD_TAG}" ]]; then
OLD_TAG="${DEFAULT_OLD_TAG}"
fi
done
else
OLD_TAG="${1}"
if [[ -z "$(git tag --list "${OLD_TAG}")" ]]; then
echo "ERROR: Tag '${OLD_TAG}' not found!" >&2
exit 1
fi
fi
if [[ -z "${2:-}" ]]; then
read -rp "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG
if [[ -z "${NEW_TAG}" ]]; then
NEW_TAG="${DEFAULT_NEW_TAG}"
fi
while [[ -z "$(git tag --list "${NEW_TAG}")" ]]; do
echo "ERROR: Tag '${NEW_TAG}' not found!" >&2
read -rp "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG
if [[ -z "${NEW_TAG}" ]]; then
NEW_TAG="${DEFAULT_NEW_TAG}"
fi
done
else
NEW_TAG="${2}"
if [[ -z "$(git tag --list "${NEW_TAG}")" ]]; then
echo "ERROR: Tag '${NEW_TAG}' not found!" >&2
exit 1
fi
fi
if [[ "${NEW_TAG}" =~ ${RC_PATTERN} ]]; then
echo "INFO: Tag '${NEW_TAG}' is a prerelease, setting prerelease annotation and skipping changelog."
yq --no-colors --inplace ".annotations.\"artifacthub.io/prerelease\" = \"true\" | sort_keys(.)" "${CHART_FILE}"
exit 0
fi
CHANGE_LOG_YAML="$(mktemp)"
echo "[]" > "${CHANGE_LOG_YAML}"
map_type_to_kind() {
case "${1}" in
feat)
echo "added"
;;
fix)
echo "fixed"
;;
chore|style|test|ci|docs|refac)
echo "changed"
;;
revert)
echo "removed"
;;
sec)
echo "security"
;;
*)
echo "skip"
;;
esac
}
COMMIT_TITLES="$(git log --pretty=format:"%s" "${OLD_TAG}..${NEW_TAG}")"
echo "INFO: Generate change log entries from ${OLD_TAG} until ${NEW_TAG}"
while IFS= read -r line; do
if [[ "${line}" =~ ^([a-zA-Z]+)(\([^\)]+\))?\:\ (.+)$ ]]; then
TYPE="${BASH_REMATCH[1]}"
KIND="$(map_type_to_kind "${TYPE}")"
if [[ "${KIND}" == "skip" ]]; then
continue
fi
DESC="${BASH_REMATCH[3]}"
echo "- ${KIND}: ${DESC}"
jq --arg kind "${KIND}" --arg description "${DESC}" '. += [ $ARGS.named ]' < "${CHANGE_LOG_YAML}" > "${CHANGE_LOG_YAML}.new"
mv "${CHANGE_LOG_YAML}.new" "${CHANGE_LOG_YAML}"
fi
done <<< "${COMMIT_TITLES}"
if [[ -s "${CHANGE_LOG_YAML}" ]]; then
yq --inplace --input-format json --output-format yml "${CHANGE_LOG_YAML}"
yq --no-colors --inplace ".annotations.\"artifacthub.io/changes\" |= loadstr(\"${CHANGE_LOG_YAML}\") | sort_keys(.)" "${CHART_FILE}"
else
echo "ERROR: Changelog file is empty: ${CHANGE_LOG_YAML}" >&2
exit 1
fi
+1 -6
View File
@@ -69,12 +69,7 @@ jobs:
with:
fetch-depth: 0
- name: Add Artifacthub.io annotations
run: |
rc_pattern="\-rc([-\.][0-9]+)?$"
NEW_TAG="$(git tag --sort=-version:refname | grep --invert-match --perl-regexp "${rc_pattern}" | head --lines 1)"
OLD_TAG="$(git tag --sort=-version:refname | grep --invert-match --perl-regexp "${rc_pattern}" | head --lines 2 | tail --lines 1)"
.gitea/scripts/add-annotations.sh "${OLD_TAG}" "${NEW_TAG}"
- uses: volker-raschek/ah-annotations@v0.1.2
- name: Extract meta information
run: |