mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-30 09:04:59 +08:00
49 lines
1.3 KiB
Bash
49 lines
1.3 KiB
Bash
#!/bin/sh
|
|
|
|
# Used in our CIs to publish the latest Docker image.
|
|
|
|
# Checks if the current tag ($GITHUB_REF) corresponds to the latest release tag on GitHub
|
|
# Returns "true" or "false" (as a string).
|
|
|
|
GITHUB_API='https://api.github.com/repos/meilisearch/meilisearch/releases'
|
|
PNAME='meilisearch'
|
|
|
|
# FUNCTIONS
|
|
|
|
# Returns the version of the latest stable version of Meilisearch by setting the $latest variable.
|
|
get_latest() {
|
|
# temp_file is needed because the grep would start before the download is over
|
|
temp_file=$(mktemp -q /tmp/$PNAME.XXXXXXXXX)
|
|
latest_release="$GITHUB_API/latest"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "$0: Can't create temp file."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$GITHUB_PAT" ]; then
|
|
curl -s "$latest_release" > "$temp_file" || return 1
|
|
else
|
|
curl -H "Authorization: token $GITHUB_PAT" -s "$latest_release" > "$temp_file" || return 1
|
|
fi
|
|
|
|
latest="$(cat "$temp_file" | grep '"tag_name":' | cut -d ':' -f2 | tr -d '"' | tr -d ',' | tr -d ' ')"
|
|
|
|
rm -f "$temp_file"
|
|
return 0
|
|
}
|
|
|
|
# MAIN
|
|
current_tag="$(echo $GITHUB_REF | tr -d 'refs/tags/')"
|
|
get_latest
|
|
|
|
if [ "$current_tag" != "$latest" ]; then
|
|
# The current release tag is not the latest
|
|
echo "false"
|
|
else
|
|
# The current release tag is the latest
|
|
echo "true"
|
|
fi
|
|
|
|
exit 0
|