mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-05 17:16:59 +02:00
78 lines
1.7 KiB
Bash
Executable File
78 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
|
|
|
|
function generate_changelog {
|
|
MERGED_PRS="$1"
|
|
|
|
echo
|
|
echo "## :warning: Breaking Changes"
|
|
echo
|
|
cat "${MERGED_PRS}" | grep "\!"
|
|
|
|
echo
|
|
echo "## :rocket: Features"
|
|
echo
|
|
cat "${MERGED_PRS}" | grep feat[:\(]
|
|
|
|
echo
|
|
echo "## :bug: Bug fixes"
|
|
echo
|
|
cat "${MERGED_PRS}" | grep fix[:\(]
|
|
|
|
echo
|
|
echo "## :memo: Documentation"
|
|
echo
|
|
cat "${MERGED_PRS}" | grep docs[:\(]
|
|
|
|
echo
|
|
echo "## :package: Others"
|
|
echo
|
|
cat "${MERGED_PRS}" | grep -v "\!" | grep -v feat[:\(] | grep -v fix[:\(] | grep -v docs[:\(]
|
|
}
|
|
|
|
function create_release {
|
|
generate_changelog | sort # | gh release create "$1" -t "$1" -F -
|
|
}
|
|
|
|
function latest_release {
|
|
gh release list -L 10 --json name,isLatest --jq '.[] | select(.isLatest)|.name'
|
|
}
|
|
|
|
function latest_release_date {
|
|
gh release list -L 10 --json name,isLatest,publishedAt --jq '.[] | select(.isLatest)|.publishedAt'
|
|
}
|
|
|
|
function latest_release_ts {
|
|
gh release list -L 10 --json name,isLatest,publishedAt --jq '.[] | select(.isLatest)|.publishedAt | fromdateiso8601'
|
|
}
|
|
|
|
if [ $# -ne 1 ]; then
|
|
echo "** DRY RUN **"
|
|
fi
|
|
|
|
printf "Latest release: %s (%s)\n" $(latest_release) $(latest_release_date)
|
|
|
|
TIMESTAMP=$(latest_release_ts)
|
|
MERGED_PRS=$(mktemp)
|
|
gh pr list \
|
|
--state merged \
|
|
--json author,number,mergeCommit,mergedAt,url,title \
|
|
--limit 999 \
|
|
--jq ".[] |
|
|
select (.mergedAt | fromdateiso8601 > ${TIMESTAMP}) | \
|
|
\"- \(.title) by @\(.author.login) in #\(.number)\"
|
|
" | sort > "${MERGED_PRS}"
|
|
|
|
if [ $# -ne 1 ]; then
|
|
generate_changelog "${MERGED_PRS}"
|
|
echo "** DRY RUN **"
|
|
echo
|
|
echo "To create a release: ./releaser.sh v0.17.0"
|
|
else
|
|
generate_changelog "${MERGED_PRS}" | gh release create "$1" -t "$1" -p -F -
|
|
fi
|
|
|
|
rm -f "${MERGED_PRS}"
|