fix(build): only use rebar3 3.18.0-emqx-1 for OTP 24

This commit is contained in:
Shawn 2022-01-25 11:02:39 +08:00
parent d422e6e700
commit 362147924d
2 changed files with 13 additions and 12 deletions

View File

@ -1,5 +1,4 @@
$(shell $(CURDIR)/scripts/git-hooks-init.sh) $(shell $(CURDIR)/scripts/git-hooks-init.sh)
REBAR_VERSION = 3.18.0-emqx-1
REBAR = $(CURDIR)/rebar3 REBAR = $(CURDIR)/rebar3
BUILD = $(CURDIR)/build BUILD = $(CURDIR)/build
SCRIPTS = $(CURDIR)/scripts SCRIPTS = $(CURDIR)/scripts
@ -31,7 +30,7 @@ all: $(REBAR) $(PROFILES)
.PHONY: ensure-rebar3 .PHONY: ensure-rebar3
ensure-rebar3: ensure-rebar3:
@$(SCRIPTS)/fail-on-old-otp-version.escript @$(SCRIPTS)/fail-on-old-otp-version.escript
@$(SCRIPTS)/ensure-rebar3.sh $(REBAR_VERSION) @$(SCRIPTS)/ensure-rebar3.sh
$(REBAR): ensure-rebar3 $(REBAR): ensure-rebar3

View File

@ -2,8 +2,7 @@
set -euo pipefail set -euo pipefail
VERSION="$1" VERSION="3.14.3-emqx-8"
REBAR3_FILENAME="${REBAR3_FILENAME:-rebar3}"
# ensure dir # ensure dir
cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.." cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
@ -11,11 +10,12 @@ cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
DOWNLOAD_URL='https://github.com/emqx/rebar3/releases/download' DOWNLOAD_URL='https://github.com/emqx/rebar3/releases/download'
download() { download() {
curl -f -L "${DOWNLOAD_URL}/${VERSION}/${REBAR3_FILENAME}" -o ./rebar3 echo "downloading rebar3 ${VERSION}"
curl -f -L "${DOWNLOAD_URL}/${VERSION}/rebar3" -o ./rebar3
} }
version_gt() { version_gte() {
test "$(echo "$@" | tr " " "n" | sort -V | head -n 1)" != "$1"; test "$(printf '%s\n' "$1" "$2" | sort -V | head -n 1)" = "$2"
} }
# get the version number from the second line of the escript # get the version number from the second line of the escript
@ -25,14 +25,16 @@ version() {
head -n 2 ./rebar3 | tail -n 1 | tr ' ' '\n' | grep -E '^.+-emqx-.+' head -n 2 ./rebar3 | tail -n 1 | tr ' ' '\n' | grep -E '^.+-emqx-.+'
} }
if version_gte "${OTP_VSN}" "24.0"; then
## rebar3 tag 3.18.0-emqx-1 is compiled using otp24.1.5.
## we have to use an otp24-compiled rebar3 because the defination of record #application{}
## in systools.hrl is changed in otp24.
VERSION="3.18.0-emqx-1"
fi
if [ -f 'rebar3' ] && [ "$(version)" = "$VERSION" ]; then if [ -f 'rebar3' ] && [ "$(version)" = "$VERSION" ]; then
exit 0 exit 0
fi fi
if version_gt "${OTP_VSN}" "24.0.0"; then
echo "$OTP_VSN is greater than 24.0.0"
REBAR3_FILENAME="rebar3_otp24.1.5"
fi
download download
chmod +x ./rebar3 chmod +x ./rebar3