Add support tag checker

This commit is contained in:
Tsuyoshi CHO
2021-02-14 13:55:28 +09:00
parent d5c4451fff
commit bbfd8c9cac
2 changed files with 25 additions and 7 deletions

View File

@@ -14,6 +14,10 @@ inputs:
repo: repo:
description: 'target GitHub repository. e.g. reviewdog/reviewdog' description: 'target GitHub repository. e.g. reviewdog/reviewdog'
required: true required: true
tag:
description: 'Check tags instead of releases.'
default: 'false'
required: false
runs: runs:
using: 'docker' using: 'docker'
image: 'Dockerfile' image: 'Dockerfile'

View File

@@ -27,13 +27,27 @@ list_releases() {
curl -s "https://api.github.com/repos/${REPO}/releases" curl -s "https://api.github.com/repos/${REPO}/releases"
fi fi
} }
LATEST_VERSION="$(\
list_releases | \ LATEST_VERSION="${CURRENT_VERSION}"
jq -r '.[] | .tag_name' | \ if [ "${INPUT_TAG:-false}" = "true" ]; then
grep -oP '\d+\.\d+(\.\d+)?(-[^'\''\"\s]*)?$' | \ echo "Check remote tag instead of release" >&2
sort --version-sort --reverse | \ LATEST_VERSION="$(\
head -n1 \ git ls-remote -q --tags "https://github.com/${REPO}.git" | \
)" awk '{ print $2 }' | \
grep -oP '\d+\.\d+(\.\d+)*(-[^'\''\"\s]*)?$' | \
sort --version-sort --reverse | \
head -n1 \
)"
else
LATEST_VERSION="$(\
list_releases | \
jq -r '.[] | .tag_name' | \
grep -oP '\d+\.\d+(\.\d+)*(-[^'\''\"\s]*)?$' | \
sort --version-sort --reverse | \
head -n1 \
)"
fi
if [ -z "${LATEST_VERSION}" ]; then if [ -z "${LATEST_VERSION}" ]; then
echo "cannot get latest ${REPO} version" echo "cannot get latest ${REPO} version"
exit 1 exit 1