Skip prereleases of readable.css in the CI workflow (#21)

Until now the algorithm would assume that the latest release on
Codeberg is always a final release.

There is the very real possibility of prereleases, which we've learned
today, but we can easily use jq to filter these out.

This relates to #19 and fixes #20.
This commit is contained in:
Robert Lützner 2024-02-27 02:49:12 +00:00 committed by GitHub
parent f25e4d2ec8
commit affe4cced4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 13 additions and 6 deletions

View File

@ -4,15 +4,22 @@ set -o pipefail
set -o nounset
# Query the codeberg.org API (see
# https://codeberg.org/api/swagger#/repository/repoListReleases) and use jq to
# get the tag name of the latest release (i.e. the first element of the array
# in the JSON output). Finally, use sed to remove the double quotes around the
# value.
# https://codeberg.org/api/swagger#/repository/repoListReleases
# ) and use jq to get the tag name of the
# latest release (i.e. the first element of the
# array in the JSON output, that is not a
# prerelease).
# The '-r' option will give us "raw" output,
# i.e. without surrounding double-quotes.
# We use 'map' and 'select' in combination,
# because jq won't return a list otherwise.
# Only using 'select' returns just the matching
# elements, which is not a valid json that we
# can process further.
TAG_VERSION=$(curl -s \
-H 'accept: application/json' \
https://codeberg.org/api/v1/repos/Freedom-to-Write/readable.css/releases \
| jq '.[0].tag_name' \
| sed 's/"//g')
| jq -r '.|map(select(.prerelease==false))[0].tag_name')
echo "Latest tag: ${TAG_VERSION}"