ci: add changelogs to automated version updates

Add the links to the changelogs of the freshly updated components to the
automated PR that does the update. This allow verifying that we are not
missing any important changes before merging the update. This happened
recently with node-exporter 1.2 which changed some flag names that we
took 3 months to update.

Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
This commit is contained in:
Damien Grisonnet
2021-09-30 09:45:56 +02:00
parent fc136a84f6
commit aab8d8eb88
2 changed files with 74 additions and 1 deletions

64
scripts/get-new-changelogs.sh Executable file
View File

@@ -0,0 +1,64 @@
#!/bin/bash
set -euo pipefail
# Get the freshly updated components versions.
# Should be only used after running ./scripts/generate-versions and before
# committing any changes.
get_updated_versions() {
# Get only the newly updated versions from the versions file.
echo "$(git diff -U0 -- "${VERSION_FILE}" | grep '^[+]' | grep -Ev '^(--- a/|\+\+\+ b/)' | tr -d '",:+' | awk -F'"' '{print $1}')"
}
# Returns github changelog url based on a given repository url and tag.
get_changelog_url() {
echo "https://github.com/${1}/releases/tag/v${2}"
}
# Gets all the new changelogs from the updated components version.
get_changelog_urls() {
while IFS= read -r updated_version; do
read -r component version <<< "${updated_version}"
case "${component}" in
alertmanager)
get_changelog_url "prometheus/alertmanager" "${version}"
;;
blackboxExporter)
get_changelog_url "prometheus/blackbox_exporter" "${version}"
;;
grafana)
get_changelog_url "grafana/grafana" "${version}"
;;
kubeStateMetrics)
get_changelog_url "kubernetes/kube-state-metrics" "${version}"
;;
nodeExporter)
get_changelog_url "prometheus/node_exporter" "${version}"
;;
prometheus)
get_changelog_url "prometheus/prometheus" "${version}"
;;
prometheusAdapter)
get_changelog_url "kubernetes-sigs/prometheus-adapter" "${version}"
;;
prometheusOperator)
get_changelog_url "prometheus-operator/prometheus-operator" "${version}"
;;
kubeRbacProxy)
get_changelog_url "brancz/kube-rbac-proxy" "${version}"
;;
configmapReload)
get_changelog_url "jimmidyson/configmap-reload" "${version}"
;;
*)
echo "Unknown component ${component} updated"
exit 1
;;
esac
done <<< "$(get_updated_versions)"
}
# File is used to read current versions
VERSION_FILE="$(pwd)/jsonnet/kube-prometheus/versions.json"
get_changelog_urls