build: correctly parse package version
This commit is contained in:
parent
d6476481c9
commit
1c5b42806b
12
build
12
build
|
@ -378,11 +378,11 @@ make_docker() {
|
||||||
local EMQX_DOCKERFILE="${EMQX_DOCKERFILE:-deploy/docker/Dockerfile}"
|
local EMQX_DOCKERFILE="${EMQX_DOCKERFILE:-deploy/docker/Dockerfile}"
|
||||||
local PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh)}"
|
local PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh)}"
|
||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
local VSN_MAJOR="$(echo "$PKG_VSN" | cut -d . -f 1)"
|
local VSN_MAJOR="$(scripts/semver.sh "$PKG_VSN" --major)"
|
||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
local VSN_MINOR="$(echo "$PKG_VSN" | cut -d . -f 2)"
|
local VSN_MINOR="$(scripts/semver.sh "$PKG_VSN" --minor)"
|
||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
local VSN_PATCH="$(echo "$PKG_VSN" | cut -d . -f 3)"
|
local VSN_MINOR="$(scripts/semver.sh "$PKG_VSN" --patch)"
|
||||||
local SUFFIX=''
|
local SUFFIX=''
|
||||||
if [[ "$PROFILE" = *-elixir ]]; then
|
if [[ "$PROFILE" = *-elixir ]]; then
|
||||||
SUFFIX="-elixir"
|
SUFFIX="-elixir"
|
||||||
|
@ -430,8 +430,6 @@ make_docker() {
|
||||||
--label org.opencontainers.image.licenses="${LICENSE}" \
|
--label org.opencontainers.image.licenses="${LICENSE}" \
|
||||||
--label org.opencontainers.image.otp.version="${EMQX_BUILDER_OTP}" \
|
--label org.opencontainers.image.otp.version="${EMQX_BUILDER_OTP}" \
|
||||||
--tag "${EMQX_IMAGE_TAG}" \
|
--tag "${EMQX_IMAGE_TAG}" \
|
||||||
--tag "${EMQX_BASE_DOCKER_TAG}:${VSN_MAJOR}.${VSN_MINOR}${SUFFIX}" \
|
|
||||||
--tag "${EMQX_BASE_DOCKER_TAG}:${VSN_MAJOR}.${VSN_MINOR}.${VSN_PATCH}${SUFFIX}" \
|
|
||||||
--provenance false \
|
--provenance false \
|
||||||
--pull
|
--pull
|
||||||
)
|
)
|
||||||
|
@ -442,7 +440,9 @@ make_docker() {
|
||||||
DOCKER_BUILDX_ARGS+=(--label org.opencontainers.image.elixir.version="${EMQX_BUILDER_ELIXIR}")
|
DOCKER_BUILDX_ARGS+=(--label org.opencontainers.image.elixir.version="${EMQX_BUILDER_ELIXIR}")
|
||||||
fi
|
fi
|
||||||
if [ "${DOCKER_LATEST:-false}" = true ]; then
|
if [ "${DOCKER_LATEST:-false}" = true ]; then
|
||||||
DOCKER_BUILDX_ARGS+=(--tag "${DOCKER_REGISTRY}/${DOCKER_ORG}/${PROFILE}:latest${SUFFIX}")
|
DOCKER_BUILDX_ARGS+=(--tag "${EMQX_BASE_DOCKER_TAG}:latest${SUFFIX}")
|
||||||
|
DOCKER_BUILDX_ARGS+=(--tag "${EMQX_BASE_DOCKER_TAG}:${VSN_MAJOR}.${VSN_MINOR}${SUFFIX}")
|
||||||
|
DOCKER_BUILDX_ARGS+=(--tag "${EMQX_BASE_DOCKER_TAG}:${VSN_MAJOR}.${VSN_MINOR}.${VSN_PATCH}${SUFFIX}")
|
||||||
fi
|
fi
|
||||||
if [ "${DOCKER_PLATFORMS:-default}" != 'default' ]; then
|
if [ "${DOCKER_PLATFORMS:-default}" != 'default' ]; then
|
||||||
DOCKER_BUILDX_ARGS+=(--platform "${DOCKER_PLATFORMS}")
|
DOCKER_BUILDX_ARGS+=(--platform "${DOCKER_PLATFORMS}")
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
function parseSemver() {
|
||||||
|
local RE='^([0-9]+)\.([0-9]+)\.([0-9]+)(-([a-z]+\.[0-9]+))?$'
|
||||||
|
echo "$1" | grep -qE "$RE" || exit 1
|
||||||
|
#shellcheck disable=SC2155
|
||||||
|
local MAJOR=$( echo "$1" | sed -r "s#$RE#\1#")
|
||||||
|
#shellcheck disable=SC2155
|
||||||
|
local MINOR=$( echo "$1" | sed -r "s#$RE#\2#")
|
||||||
|
#shellcheck disable=SC2155
|
||||||
|
local PATCH=$( echo "$1" | sed -r "s#$RE#\3#")
|
||||||
|
#shellcheck disable=SC2155
|
||||||
|
local SPECIAL=$(echo "$1" | sed -r "s#$RE#\5#")
|
||||||
|
case "${2}" in
|
||||||
|
--major) echo "${MAJOR}" ;;
|
||||||
|
--minor) echo "${MINOR}" ;;
|
||||||
|
--patch) echo "${PATCH}" ;;
|
||||||
|
--special) echo "${SPECIAL}" ;;
|
||||||
|
*)
|
||||||
|
cat <<EOF
|
||||||
|
{"major": ${MAJOR}, "minor": ${MINOR}, "patch": ${PATCH}, "special": "${SPECIAL}"}
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
parseSemver "$1" "$2"
|
|
@ -7,13 +7,13 @@ exit_code=0
|
||||||
|
|
||||||
for test in shelltest/*.test; do
|
for test in shelltest/*.test; do
|
||||||
echo "Running $test"
|
echo "Running $test"
|
||||||
/bin/sh "${test%.test}.setup"
|
[ -f "${test%.test}.setup" ] && /bin/sh "${test%.test}.setup"
|
||||||
shelltest -c --diff --all --precise -- "$test"
|
shelltest -c --diff --all --precise -- "$test"
|
||||||
# shellcheck disable=SC2181
|
# shellcheck disable=SC2181
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit_code=1
|
exit_code=1
|
||||||
fi
|
fi
|
||||||
/bin/sh "${test%.test}.cleanup"
|
[ -f "${test%.test}.cleanup" ] && /bin/sh "${test%.test}.cleanup"
|
||||||
done
|
done
|
||||||
|
|
||||||
exit $exit_code
|
exit $exit_code
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
./semver.sh 5.2.0.1
|
||||||
|
>>>= 1
|
||||||
|
|
||||||
|
./semver.sh 5.1.0
|
||||||
|
>>>
|
||||||
|
{"major": 5, "minor": 1, "patch": 0, "special": ""}
|
||||||
|
>>>= 0
|
||||||
|
|
||||||
|
./semver.sh 5.1.0-patch.3
|
||||||
|
>>>
|
||||||
|
{"major": 5, "minor": 1, "patch": 0, "special": "patch.3"}
|
||||||
|
>>>= 0
|
||||||
|
|
||||||
|
./semver.sh 5.1.0-patch.3 --major
|
||||||
|
>>>
|
||||||
|
5
|
||||||
|
>>>= 0
|
||||||
|
|
||||||
|
./semver.sh 5.1.0-patch.3 --minor
|
||||||
|
>>>
|
||||||
|
1
|
||||||
|
>>>= 0
|
||||||
|
|
||||||
|
./semver.sh 5.1.0-patch.3 --patch
|
||||||
|
>>>
|
||||||
|
0
|
||||||
|
>>>= 0
|
||||||
|
|
||||||
|
./semver.sh 5.1.0-patch.3 --special
|
||||||
|
>>>
|
||||||
|
patch.3
|
||||||
|
>>>= 0
|
Loading…
Reference in New Issue