Files
my-rook-config/tests/scripts/gen_release_notes.sh
T
subhamkrai 8572fdb58b ci: create tag and print release notes
since we moved to github action for the release,
we maunally have to push the tag to build image.

with this change,
first, this action will set some
environment variable which will be consume by
the script to print release notes.
then,
it will ask for 1 input from
github UI(in Action tab)
tag: where we'll give the tag for the release

after creating tag it will run the script and
print release notes.

**NOTE** please verify the environment var
and release notes after the successful action run.

.

Signed-off-by: subhamkrai <srai@redhat.com>
2021-08-06 16:00:25 +05:30

49 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
function help() {
print="
To run this command,
1. verify you are selecting right branch from GitHub UI dropdown menu
2. enter the tag you want to create
"
echo "$print"
exit 1
}
if [ -z "${GITHUB_USER}" ] || [ -z "${GITHUB_TOKEN}" ]; then
echo "requires both GITHUB_USER and GITHUB_TOKEN to be set as env variable"
help
fi
pr_list=$(git log --pretty="%s" --merges --left-only ${FROM_BRANCH}...${TO_TAG} | grep pull | awk '/Merge pull request/ {print $4}' | cut -c 2-)
# for releases notes
function release_notes() {
for pr in $pr_list; do
# get PR title
backport_pr=$(curl -s -u ${GITHUB_USER}:${GITHUB_TOKEN} https://api.github.com/repos/rook/rook/pulls/${pr} | jq '.title')
# with upstream/release-1.6 v1.6.8, it was giving extra PR numbers, so removing after PR for changing tag is merged.
if [[ "$backport_pr" =~ "build: Update build version to $TO_TAG for the release" ]]; then
break
fi
# check if it is manual backport PR or not, for mergify backport PR it will contain "(backport"
if [[ "$backport_pr" =~ .*"(backport".* ]]; then
# find the PR number after the #
original_pr=$(echo $backport_pr | sed -n -e 's/^.*#//p' | grep -E0o '[0-9]' | tr -d '\n')
else
# in manual backport PR, we'll directly fetch the owner and title from the PR number
original_pr=$pr
fi
# get the PR title and PR owner in required format
title_with_user=$(curl -s -u ${GITHUB_USER}:${GITHUB_TOKEN} https://api.github.com/repos/rook/rook/pulls/${original_pr} | jq '.title+ " (#, @"+.user.login+")"')
# add PR number after "#"
result=$(echo "$title_with_user" | sed "s/(#/(#$original_pr/" |tail -c +2)
# remove last `"`
result=${result%\"}
echo "$result"
done
}
release_notes