From 238895a301002b97da8f4017f89e5307f9d810df Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Wed, 22 Dec 2021 15:39:51 -0300 Subject: [PATCH] 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 --- .github/workflows/elixir_release.yml | 2 +- apps/emqx/include/emqx_release.hrl | 6 +++++- mix.exs | 27 ++++----------------------- mix_release.sh | 27 --------------------------- 4 files changed, 10 insertions(+), 52 deletions(-) delete mode 100755 mix_release.sh diff --git a/.github/workflows/elixir_release.yml b/.github/workflows/elixir_release.yml index 40fddcaac..033e9c010 100644 --- a/.github/workflows/elixir_release.yml +++ b/.github/workflows/elixir_release.yml @@ -24,7 +24,7 @@ jobs: - name: produce emqx.conf.all template run: make conf-segs - name: elixir release - run: ./mix_release.sh + run: mix release --overwrite - name: start release run: | cd _build/dev/rel/emqx_base diff --git a/apps/emqx/include/emqx_release.hrl b/apps/emqx/include/emqx_release.hrl index 1424eb8a5..09a1fdfb7 100644 --- a/apps/emqx/include/emqx_release.hrl +++ b/apps/emqx/include/emqx_release.hrl @@ -24,4 +24,8 @@ %% 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"). diff --git a/mix.exs b/mix.exs index 3efabc9a0..16dd150cd 100644 --- a/mix.exs +++ b/mix.exs @@ -340,31 +340,12 @@ defmodule EMQXUmbrella.MixProject do ]) end - def project_path() do - Path.expand("..", __ENV__.file) - end - def pkg_vsn() do - project_path() - |> Path.join("pkg-vsn.sh") - |> System.cmd([]) - |> elem(0) - |> String.trim() - |> String.split("-") - |> Enum.reverse() - |> tl() - |> Enum.reverse() - |> fix_vsn() - |> Enum.join("-") - end + basedir = Path.dirname(__ENV__.file) + script = Path.join(basedir, "pkg-vsn.sh") + {str_vsn, 0} = System.cmd(script, []) - # FIXME: remove hack - defp fix_vsn([vsn | extras]) do - if Version.parse(vsn) == :error do - [vsn <> ".0" | extras] - else - [vsn | extras] - end + String.trim(str_vsn) end defp win32?(), diff --git a/mix_release.sh b/mix_release.sh deleted file mode 100755 index 3770b3a9e..000000000 --- a/mix_release.sh +++ /dev/null @@ -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