Merge pull request #6918 from thalesmg/fix-mix-vsn
Currently, emqx_release.erl depends on the erl_opts option compile_info being set by Rebar3 to include {emqx_vsn, $PKG_VSN} to report the version, for instance, in emqx ctl status. Since Mix does not provide a simple way to pass erl_opts to Rebar3 dependencies without creating a mix.exs file, the workaround is to set the environment variable ERL_COMPILER_OPTIONS to include that value before invoking the Erlang compiler on the Rebar3 dependencies. Also, we set the `EMQX_ENTERPRISE` macro in the same way.
This commit is contained in:
commit
e4b14a34b2
22
build
22
build
|
@ -224,6 +224,12 @@ make_docker_testing() {
|
||||||
-f "${DOCKERFILE_TESTING}" .
|
-f "${DOCKERFILE_TESTING}" .
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function join {
|
||||||
|
local IFS="$1"
|
||||||
|
shift
|
||||||
|
echo "$*"
|
||||||
|
}
|
||||||
|
|
||||||
# used to control the Elixir Mix Release output
|
# used to control the Elixir Mix Release output
|
||||||
# see docstring in `mix.exs`
|
# see docstring in `mix.exs`
|
||||||
export_release_vars() {
|
export_release_vars() {
|
||||||
|
@ -240,6 +246,22 @@ export_release_vars() {
|
||||||
exit 1
|
exit 1
|
||||||
esac
|
esac
|
||||||
export MIX_ENV="$profile"
|
export MIX_ENV="$profile"
|
||||||
|
|
||||||
|
local erl_opts=()
|
||||||
|
|
||||||
|
if [[ "$profile" = *enterprise* ]]
|
||||||
|
then
|
||||||
|
erl_opts+=( "{d,'EMQX_ENTERPRISE'}" )
|
||||||
|
fi
|
||||||
|
|
||||||
|
# At this time, Mix provides no easy way to pass `erl_opts' to
|
||||||
|
# dependencies. The workaround is to set this variable before
|
||||||
|
# compiling the project, so that `emqx_release.erl' picks up
|
||||||
|
# `emqx_vsn' as if it was compiled by rebar3.
|
||||||
|
erl_opts+=( "{compile_info,[{emqx_vsn,\"${PKG_VSN}\"}]}" )
|
||||||
|
|
||||||
|
ERL_COMPILER_OPTIONS="[$(join , "${erl_opts[@]}")]"
|
||||||
|
export ERL_COMPILER_OPTIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
log "building artifact=$ARTIFACT for profile=$PROFILE"
|
log "building artifact=$ARTIFACT for profile=$PROFILE"
|
||||||
|
|
Loading…
Reference in New Issue