mirror of
https://github.com/caprover/caprover
synced 2026-10-08 14:21:21 +00:00
53 lines
1.5 KiB
Bash
Executable File
53 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
set -o pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
. "$SCRIPT_DIR/release.conf"
|
|
|
|
if ! command -v curl >/dev/null 2>&1; then
|
|
echo "curl is required to validate the release version." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! "$CAPROVER_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
echo "Invalid CapRover version: $CAPROVER_VERSION" >&2
|
|
exit 1
|
|
fi
|
|
|
|
ESCAPED_CAPROVER_VERSION="${CAPROVER_VERSION//./\\.}"
|
|
if ! grep --extended-regexp --quiet "^## \[$ESCAPED_CAPROVER_VERSION\]( |$)" CHANGELOG.md; then
|
|
echo "CHANGELOG.md is missing the heading ## [$CAPROVER_VERSION]." >&2
|
|
exit 1
|
|
fi
|
|
|
|
GIT_TAG="v$CAPROVER_VERSION"
|
|
if git ls-remote --exit-code --tags origin "refs/tags/$GIT_TAG" >/dev/null 2>&1; then
|
|
echo "Tag $GIT_TAG already exists in GitHub." >&2
|
|
exit 1
|
|
else
|
|
TAG_LOOKUP_STATUS=$?
|
|
if [ "$TAG_LOOKUP_STATUS" -ne 2 ]; then
|
|
echo "Could not check whether tag $GIT_TAG exists." >&2
|
|
exit "$TAG_LOOKUP_STATUS"
|
|
fi
|
|
fi
|
|
|
|
TAG_URL="https://hub.docker.com/v2/repositories/${CAPROVER_IMAGE_NAME}/tags/${CAPROVER_VERSION}"
|
|
HTTP_STATUS="$(curl --silent --show-error --location --output /dev/null --write-out '%{http_code}' "$TAG_URL")"
|
|
|
|
case "$HTTP_STATUS" in
|
|
200)
|
|
echo "Version $CAPROVER_VERSION already exists on Docker Hub." >&2
|
|
exit 1
|
|
;;
|
|
404)
|
|
echo "Version $CAPROVER_VERSION is available."
|
|
;;
|
|
*)
|
|
echo "Docker Hub returned HTTP $HTTP_STATUS while validating version $CAPROVER_VERSION." >&2
|
|
exit 1
|
|
;;
|
|
esac
|