Compare commits

...
12 Commits
Author SHA1 Message Date
volker.raschekandCopilot e09acf4f2a style(scripts): harden add-annotations.sh to follow shell best practices
Helm / helm-lint (push) Successful in 13s
Helm / helm-unittest (push) Successful in 17s
Release / publish-chart (push) Successful in 2m18s
Apply shell scripting conventions to improve robustness and consistency:
- Enable `set -u` (nounset) to catch unset variable references early
- Add trap-based cleanup for temporary files instead of manual rm
- Use `readonly` for constants (CHART_FILE, RC_PATTERN)
- Replace `[ ]` with `[[ ]]` throughout for modern bash conditionals
- Use `read -r` to prevent backslash interpretation
- Use `${1:-}` / `${2:-}` for safe positional parameter access under nounset
- Normalize stderr redirect to `>&2`
- Remove `function` keyword, align `;;` in case statements

Co-authored-by: Copilot <copilot@github.com>
2026-08-16 19:28:53 +02:00
CSRBot 4858bbfea8 Merge pull request 'chore(deps): update dependency helm to v4.2.4' (#187) from renovate/helm-4.x into master
Helm / helm-lint (push) Successful in 7s
Helm / helm-unittest (push) Successful in 40s
2026-08-13 18:05:25 +00:00
CSRBot b224d1b699 chore(deps): update dependency helm to v4.2.4
Helm / helm-lint (push) Successful in 8s
Helm / helm-lint (pull_request) Successful in 7s
Helm / helm-unittest (push) Successful in 29s
Helm / helm-unittest (pull_request) Successful in 18s
2026-08-13 18:04:33 +00:00
CSRBot a17b503955 Merge pull request 'chore(deps): update dependency helm/helm to v4.2.4' (#186) from renovate/helm-helm-4.x into master
Helm / helm-unittest (push) Successful in 29s
Helm / helm-lint (push) Successful in 7s
2026-08-13 15:05:46 +00:00
CSRBot 3f416bdd8f chore(deps): update dependency helm/helm to v4.2.4
Helm / helm-lint (push) Successful in 13s
Helm / helm-unittest (push) Successful in 20s
Helm / helm-lint (pull_request) Successful in 12s
Helm / helm-unittest (pull_request) Successful in 17s
2026-08-13 15:04:48 +00:00
CSRBot 992a105ee7 Merge pull request 'chore(deps): update dependency sigstore/cosign to v3.1.3' (#184) from renovate/sigstore-cosign-3.x into master
Helm / helm-lint (push) Successful in 7s
Helm / helm-unittest (push) Successful in 48s
2026-08-09 21:05:10 +00:00
CSRBot d6d2f7f632 chore(deps): update dependency sigstore/cosign to v3.1.3
Helm / helm-lint (push) Successful in 10s
Helm / helm-unittest (push) Successful in 21s
Helm / helm-lint (pull_request) Successful in 14s
Helm / helm-unittest (pull_request) Successful in 18s
2026-08-09 21:04:19 +00:00
CSRBot d7a9ceece9 Merge pull request 'chore(deps): update docker.io/library/node docker tag to v26.7.0' (#185) from renovate/update-docker.iolibrarynode into master
Helm / helm-lint (push) Successful in 11s
Helm / helm-unittest (push) Successful in 26s
2026-08-09 18:13:29 +00:00
CSRBot 8aa240b695 chore(deps): update docker.io/library/node docker tag to v26.7.0
Helm / helm-lint (pull_request) Successful in 11s
Helm / helm-lint (push) Successful in 14s
Helm / helm-unittest (push) Successful in 44s
Helm / helm-unittest (pull_request) Successful in 27s
2026-08-09 18:09:03 +00:00
CSRBot 7f330b714c Merge pull request 'chore(deps): update docker.io/library/node docker tag to v26.5.1' (#183) from renovate/update-docker.iolibrarynode into master
Helm / helm-lint (push) Successful in 6s
Helm / helm-unittest (push) Successful in 23s
2026-07-30 21:05:29 +00:00
CSRBot 6097ff6ff6 chore(deps): update docker.io/library/node docker tag to v26.5.1
Helm / helm-lint (push) Successful in 11s
Helm / helm-unittest (push) Successful in 17s
Helm / helm-lint (pull_request) Successful in 12s
Helm / helm-unittest (pull_request) Successful in 16s
2026-07-30 21:04:43 +00:00
CSRBot 53325928e9 Merge pull request 'chore(deps): update dependency markdown-link-check to v3.15.0' (#181) from renovate/markdown-link-check-3.x-lockfile into master
Helm / helm-lint (push) Successful in 7s
Helm / helm-unittest (push) Successful in 26s
2026-07-29 21:07:25 +00:00
5 changed files with 61 additions and 52 deletions
+54 -45
View File
@@ -1,92 +1,104 @@
#!/bin/bash #!/bin/bash
set -eo pipefail # ============================================================================
# Generate ArtifactHub changelog annotations from git commit history
# ============================================================================
CHART_FILE="Chart.yaml" set -euo pipefail
if [ ! -f "${CHART_FILE}" ]; then
echo "ERROR: ${CHART_FILE} not found!" 1>&2 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 exit 1
fi fi
rc_pattern="\-rc([-\.][0-9]+)?$"
# Exclude prerelease tags (matching -rc or -rc.<digits>) from default tag selection # 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_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)" 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 if [[ -z "${1:-}" ]]; then
read -p "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG read -rp "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG
if [ -z "${OLD_TAG}" ]; then if [[ -z "${OLD_TAG}" ]]; then
OLD_TAG="${DEFAULT_OLD_TAG}" OLD_TAG="${DEFAULT_OLD_TAG}"
fi fi
while [ -z "$(git tag --list "${OLD_TAG}")" ]; do while [[ -z "$(git tag --list "${OLD_TAG}")" ]]; do
echo "ERROR: Tag '${OLD_TAG}' not found!" 1>&2 echo "ERROR: Tag '${OLD_TAG}' not found!" >&2
read -p "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG read -rp "Enter start tag [${DEFAULT_OLD_TAG}]: " OLD_TAG
if [ -z "${OLD_TAG}" ]; then if [[ -z "${OLD_TAG}" ]]; then
OLD_TAG="${DEFAULT_OLD_TAG}" OLD_TAG="${DEFAULT_OLD_TAG}"
fi fi
done done
else else
OLD_TAG=${1} OLD_TAG="${1}"
if [ -z "$(git tag --list "${OLD_TAG}")" ]; then if [[ -z "$(git tag --list "${OLD_TAG}")" ]]; then
echo "ERROR: Tag '${OLD_TAG}' not found!" 1>&2 echo "ERROR: Tag '${OLD_TAG}' not found!" >&2
exit 1 exit 1
fi fi
fi fi
if [ -z "${2}" ]; then if [[ -z "${2:-}" ]]; then
read -p "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG read -rp "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG
if [ -z "${NEW_TAG}" ]; then if [[ -z "${NEW_TAG}" ]]; then
NEW_TAG="${DEFAULT_NEW_TAG}" NEW_TAG="${DEFAULT_NEW_TAG}"
fi fi
while [ -z "$(git tag --list "${NEW_TAG}")" ]; do while [[ -z "$(git tag --list "${NEW_TAG}")" ]]; do
echo "ERROR: Tag '${NEW_TAG}' not found!" 1>&2 echo "ERROR: Tag '${NEW_TAG}' not found!" >&2
read -p "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG read -rp "Enter end tag [${DEFAULT_NEW_TAG}]: " NEW_TAG
if [ -z "${NEW_TAG}" ]; then if [[ -z "${NEW_TAG}" ]]; then
NEW_TAG="${DEFAULT_NEW_TAG}" NEW_TAG="${DEFAULT_NEW_TAG}"
fi fi
done done
else else
NEW_TAG=${2} NEW_TAG="${2}"
if [ -z "$(git tag --list "${NEW_TAG}")" ]; then if [[ -z "$(git tag --list "${NEW_TAG}")" ]]; then
echo "ERROR: Tag '${NEW_TAG}' not found!" 1>&2 echo "ERROR: Tag '${NEW_TAG}' not found!" >&2
exit 1 exit 1
fi fi
fi fi
# Check if NEW_TAG is a prerelease (matches -rc or -rc-<digits> suffix) if [[ "${NEW_TAG}" =~ ${RC_PATTERN} ]]; then
if [[ "${NEW_TAG}" =~ ${rc_pattern} ]]; then
echo "INFO: Tag '${NEW_TAG}' is a prerelease, setting prerelease annotation and skipping changelog." 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}" yq --no-colors --inplace ".annotations.\"artifacthub.io/prerelease\" = \"true\" | sort_keys(.)" "${CHART_FILE}"
exit 0 exit 0
fi fi
CHANGE_LOG_YAML=$(mktemp) CHANGE_LOG_YAML="$(mktemp)"
echo "[]" > "${CHANGE_LOG_YAML}" echo "[]" > "${CHANGE_LOG_YAML}"
function map_type_to_kind() { map_type_to_kind() {
case "${1}" in case "${1}" in
feat) feat)
echo "added" echo "added"
;; ;;
fix) fix)
echo "fixed" echo "fixed"
;; ;;
chore|style|test|ci|docs|refac) chore|style|test|ci|docs|refac)
echo "changed" echo "changed"
;; ;;
revert) revert)
echo "removed" echo "removed"
;; ;;
sec) sec)
echo "security" echo "security"
;; ;;
*) *)
echo "skip" echo "skip"
;; ;;
esac esac
} }
@@ -97,9 +109,9 @@ echo "INFO: Generate change log entries from ${OLD_TAG} until ${NEW_TAG}"
while IFS= read -r line; do while IFS= read -r line; do
if [[ "${line}" =~ ^([a-zA-Z]+)(\([^\)]+\))?\:\ (.+)$ ]]; then if [[ "${line}" =~ ^([a-zA-Z]+)(\([^\)]+\))?\:\ (.+)$ ]]; then
TYPE="${BASH_REMATCH[1]}" TYPE="${BASH_REMATCH[1]}"
KIND=$(map_type_to_kind "${TYPE}") KIND="$(map_type_to_kind "${TYPE}")"
if [ "${KIND}" == "skip" ]; then if [[ "${KIND}" == "skip" ]]; then
continue continue
fi fi
@@ -109,16 +121,13 @@ while IFS= read -r line; do
jq --arg kind "${KIND}" --arg description "${DESC}" '. += [ $ARGS.named ]' < "${CHANGE_LOG_YAML}" > "${CHANGE_LOG_YAML}.new" jq --arg kind "${KIND}" --arg description "${DESC}" '. += [ $ARGS.named ]' < "${CHANGE_LOG_YAML}" > "${CHANGE_LOG_YAML}.new"
mv "${CHANGE_LOG_YAML}.new" "${CHANGE_LOG_YAML}" mv "${CHANGE_LOG_YAML}.new" "${CHANGE_LOG_YAML}"
fi fi
done <<< "${COMMIT_TITLES}" done <<< "${COMMIT_TITLES}"
if [ -s "${CHANGE_LOG_YAML}" ]; then if [[ -s "${CHANGE_LOG_YAML}" ]]; then
yq --inplace --input-format json --output-format yml "${CHANGE_LOG_YAML}" 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}" yq --no-colors --inplace ".annotations.\"artifacthub.io/changes\" |= loadstr(\"${CHANGE_LOG_YAML}\") | sort_keys(.)" "${CHART_FILE}"
else else
echo "ERROR: Changelog file is empty: ${CHANGE_LOG_YAML}" 1>&2 echo "ERROR: Changelog file is empty: ${CHANGE_LOG_YAML}" >&2
exit 1 exit 1
fi fi
rm "${CHANGE_LOG_YAML}"
+1 -1
View File
@@ -15,7 +15,7 @@ on:
jobs: jobs:
generate-parameters: generate-parameters:
container: container:
image: docker.io/library/node:26.5.0-alpine image: docker.io/library/node:26.7.0-alpine
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Install tooling - name: Install tooling
+2 -2
View File
@@ -17,7 +17,7 @@ jobs:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1 - uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1
with: with:
version: v4.2.3 # renovate: datasource=github-releases depName=helm/helm version: v4.2.4 # renovate: datasource=github-releases depName=helm/helm
- name: Lint helm files - name: Lint helm files
run: | run: |
helm lint --values values.yaml . helm lint --values values.yaml .
@@ -28,7 +28,7 @@ jobs:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1 - uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1
with: with:
version: v4.2.3 # renovate: datasource=github-releases depName=helm/helm version: v4.2.4 # renovate: datasource=github-releases depName=helm/helm
- env: - env:
HELM_UNITTEST_VERSION: v1.0.0 #renovate: datasource=github-releases depName=helm-unittest/helm-unittest HELM_UNITTEST_VERSION: v1.0.0 #renovate: datasource=github-releases depName=helm-unittest/helm-unittest
name: Install helm-unittest name: Install helm-unittest
+2 -2
View File
@@ -15,7 +15,7 @@ on:
jobs: jobs:
markdown-link-checker: markdown-link-checker:
container: container:
image: docker.io/library/node:26.5.0-alpine image: docker.io/library/node:26.7.0-alpine
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Install tooling - name: Install tooling
@@ -30,7 +30,7 @@ jobs:
markdown-lint: markdown-lint:
container: container:
image: docker.io/library/node:26.5.0-alpine image: docker.io/library/node:26.7.0-alpine
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Install tooling - name: Install tooling
+2 -2
View File
@@ -16,11 +16,11 @@ jobs:
steps: steps:
- uses: volker-raschek/cosign-installer@7643eed6736a199595ed2a31e9979ec353a88adb # v4.1.3-rc3 - uses: volker-raschek/cosign-installer@7643eed6736a199595ed2a31e9979ec353a88adb # v4.1.3-rc3
with: with:
cosign-release: "v3.1.2" # renovate: datasource=github-tags depName=sigstore/cosign cosign-release: "v3.1.3" # renovate: datasource=github-tags depName=sigstore/cosign
- uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1 - uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1
with: with:
version: "v4.2.3" # renovate: datasource=github-tags depName=helm/helm version: "v4.2.4" # renovate: datasource=github-tags depName=helm/helm
- name: Install helm plugins - name: Install helm plugins
env: env: