chore(mix): correctly define release version

With this, we no longer need the last hack in `mix_release.sh`.

A version schema with 3 parts (Major.Minor.Patch) is required by
Elixir:

https://hexdocs.pm/elixir/1.13.1/Version.html#module-versions
This commit is contained in:
Thales Macedo Garitezi 2021-12-22 15:39:51 -03:00
parent 014b6d3cfd
commit 238895a301
No known key found for this signature in database
GPG Key ID: DD279F8152A9B6DD
4 changed files with 10 additions and 52 deletions

View File

@ -24,7 +24,7 @@ jobs:
- name: produce emqx.conf.all template - name: produce emqx.conf.all template
run: make conf-segs run: make conf-segs
- name: elixir release - name: elixir release
run: ./mix_release.sh run: mix release --overwrite
- name: start release - name: start release
run: | run: |
cd _build/dev/rel/emqx_base cd _build/dev/rel/emqx_base

View File

@ -24,4 +24,8 @@
%% NOTE: This version number should be manually bumped for each release %% NOTE: This version number should be manually bumped for each release
-define(EMQX_RELEASE, "5.0-beta.2"). %% NOTE: This version number should have 3 numeric parts
%% (Major.Minor.Patch), and extra info can be added after a final
%% hyphen.
-define(EMQX_RELEASE, "5.0.0-beta.2").

27
mix.exs
View File

@ -340,31 +340,12 @@ defmodule EMQXUmbrella.MixProject do
]) ])
end end
def project_path() do
Path.expand("..", __ENV__.file)
end
def pkg_vsn() do def pkg_vsn() do
project_path() basedir = Path.dirname(__ENV__.file)
|> Path.join("pkg-vsn.sh") script = Path.join(basedir, "pkg-vsn.sh")
|> System.cmd([]) {str_vsn, 0} = System.cmd(script, [])
|> elem(0)
|> String.trim()
|> String.split("-")
|> Enum.reverse()
|> tl()
|> Enum.reverse()
|> fix_vsn()
|> Enum.join("-")
end
# FIXME: remove hack String.trim(str_vsn)
defp fix_vsn([vsn | extras]) do
if Version.parse(vsn) == :error do
[vsn <> ".0" | extras]
else
[vsn | extras]
end
end end
defp win32?(), defp win32?(),

View File

@ -1,27 +0,0 @@
#!/bin/bash
set -ex
mix release --overwrite
## FIXME: temporary hacks to get the needed configurations for the
## release to properly start.
## Assumes that `make emqx` has been run before the mix build to
## generate the correct configs.
# mkdir -p _build/dev/rel/emqx/data/configs/
# LATEST_APP_CONFIG=$(ls -rt _build/emqx/rel/emqx/data/configs/app*.config | tail -n 1)
# FIXME!
# cp ${LATEST_APP_CONFIG} _build/dev/rel/emqx/releases/5.0.0-beta.2/sys.config
# sed -i -E 's#_build/emqx/rel/emqx/etc/emqx.conf#_build/dev/rel/emqx/etc/emqx.conf#g' _build/dev/rel/emqx/releases/5.0.0-beta.2/sys.config
# sed -i -E 's#logger_level,warning#logger_level,debug#g' _build/dev/rel/emqx/releases/5.0.0-beta.2/sys.config
# sed -i -E 's#level => warning#level => debug#g' _build/dev/rel/emqx/releases/5.0.0-beta.2/sys.config
# cp _build/emqx/rel/emqx/releases/emqx_vars _build/dev/rel/emqx/releases/
# cp _build/emqx/rel/emqx/etc/emqx.conf _build/dev/rel/emqx/etc/
# cp -r apps/emqx/etc/certs _build/dev/rel/emqx/etc/
echo "telemetry { enable = false }" >> _build/dev/rel/emqx_base/etc/emqx.conf