36 lines
1.1 KiB
Bash
Executable File
36 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eEuo pipefail
|
|
|
|
# Get list of release- branches
|
|
RELEASE_BRANCHES="$(git branch -r | grep -v mergify | grep '/release-' | cut -d'/' -f2 | sort | uniq)"
|
|
LATEST_RELEASE_BRANCH=""
|
|
MAX_TRIES=2
|
|
|
|
TRY=1
|
|
until [ -n "${LATEST_RELEASE_BRANCH}" ] || [ ${TRY} -gt ${MAX_TRIES} ]; do
|
|
LATEST_RELEASE_BRANCH="$(echo "${RELEASE_BRANCHES}" | sort --version-sort | tail -n 1 | cut -d'/' -f2)"
|
|
BRANCH_VERSION="v$(echo "${LATEST_RELEASE_BRANCH}" | cut -d'-' -f2-)"
|
|
|
|
# Get tags for the release version and filter out any alpha or beta versions
|
|
set +o pipefail
|
|
set +e
|
|
TAGS="$(git tag | grep -F "${BRANCH_VERSION}.0" | grep -Ev "alpha|beta")"
|
|
set -o pipefail
|
|
set -e
|
|
|
|
# If the list is empty remove last line from $RELEASE_BRANCHES and
|
|
# clear $LATEST_RELEASE_BRANCH var
|
|
if [ -z "${TAGS}" ]; then
|
|
LATEST_RELEASE_BRANCH=""
|
|
RELEASE_BRANCHES="$(echo "${RELEASE_BRANCHES}" | sed '$d')"
|
|
fi
|
|
(( TRY++ ))
|
|
done
|
|
|
|
if [ -z "${LATEST_RELEASE_BRANCH}" ]; then
|
|
echo "Failed to find latest released release branch!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "${LATEST_RELEASE_BRANCH}"
|