From bbfd8c9caca78ef781cd27760c83de14df061503 Mon Sep 17 00:00:00 2001 From: Tsuyoshi CHO Date: Sun, 14 Feb 2021 13:55:28 +0900 Subject: [PATCH] Add support tag checker --- action.yml | 4 ++++ entrypoint.sh | 28 +++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/action.yml b/action.yml index 7fcaf23..28532f8 100644 --- a/action.yml +++ b/action.yml @@ -14,6 +14,10 @@ inputs: repo: description: 'target GitHub repository. e.g. reviewdog/reviewdog' required: true + tag: + description: 'Check tags instead of releases.' + default: 'false' + required: false runs: using: 'docker' image: 'Dockerfile' diff --git a/entrypoint.sh b/entrypoint.sh index 4b47069..b306b64 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -27,13 +27,27 @@ list_releases() { curl -s "https://api.github.com/repos/${REPO}/releases" fi } -LATEST_VERSION="$(\ - list_releases | \ - jq -r '.[] | .tag_name' | \ - grep -oP '\d+\.\d+(\.\d+)?(-[^'\''\"\s]*)?$' | \ - sort --version-sort --reverse | \ - head -n1 \ -)" + +LATEST_VERSION="${CURRENT_VERSION}" +if [ "${INPUT_TAG:-false}" = "true" ]; then + echo "Check remote tag instead of release" >&2 + LATEST_VERSION="$(\ + 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 echo "cannot get latest ${REPO} version" exit 1