Forráskód Böngészése

ci: preparations for new mix build

Thales Macedo Garitezi 1 éve
szülő
commit
02a0ccfdd1

+ 1 - 0
.github/workflows/.zipignore2

@@ -0,0 +1 @@
+*/.github/*

+ 7 - 1
Makefile

@@ -28,6 +28,8 @@ CT_COVER_EXPORT_PREFIX ?= $(PROFILE)
 
 export REBAR_GIT_CLONE_OPTIONS += --depth=1
 
+ELIXIR_COMMON_DEPS := ensure-hex ensure-mix-rebar3 ensure-mix-rebar
+
 .PHONY: default
 default: $(REBAR) $(PROFILE)
 
@@ -58,8 +60,12 @@ ensure-mix-rebar3: $(REBAR)
 ensure-mix-rebar: $(REBAR)
 	@mix local.rebar --if-missing --force
 
+
+.PHONY: elixir-common-deps
+elixir-common-deps: $(ELIXIR_COMMON_DEPS)
+
 .PHONY: mix-deps-get
-mix-deps-get: $(ELIXIR_COMMON_DEPS)
+mix-deps-get: elixir-common-deps
 	@mix deps.get
 
 .PHONY: eunit

+ 1 - 0
apps/emqx/mix.exs

@@ -36,6 +36,7 @@ defmodule EMQX.MixProject do
   def deps() do
     ## FIXME!!! go though emqx.app.src and add missing stuff...
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx_utils, in_umbrella: true},
       {:emqx_ds_backends, in_umbrella: true},
 

+ 1 - 0
apps/emqx_auth/mix.exs

@@ -28,6 +28,7 @@ defmodule EMQXAuth.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       {:emqx_utils, in_umbrella: true}
     ]

+ 1 - 0
apps/emqx_bridge/mix.exs

@@ -28,6 +28,7 @@ defmodule EMQXBridge.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       {:emqx_resource, in_umbrella: true},
       {:emqx_connector, in_umbrella: true},

+ 1 - 0
apps/emqx_durable_storage/mix.exs

@@ -33,6 +33,7 @@ defmodule EMQXDurableStorage.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx_utils, in_umbrella: true},
       UMP.common_dep(:rocksdb),
       UMP.common_dep(:gproc),

+ 1 - 0
apps/emqx_exhook/mix.exs

@@ -36,6 +36,7 @@ defmodule EMQXExhook.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       {:emqx_utils, in_umbrella: true},
       UMP.common_dep(:grpc)

+ 1 - 0
apps/emqx_gateway/mix.exs

@@ -26,6 +26,7 @@ defmodule EMQXGateway.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       {:emqx_utils, in_umbrella: true},
       {:emqx_ctl, in_umbrella: true},

+ 1 - 0
apps/emqx_gateway_exproto/mix.exs

@@ -34,6 +34,7 @@ defmodule EMQXGatewayExproto.MixProject do
   def deps() do
     test_deps = if UMP.test_env?(), do: [{:emqx_exhook, in_umbrella: true, runtime: false}], else: []
     test_deps ++ [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       {:emqx_utils, in_umbrella: true},
       {:emqx_gateway, in_umbrella: true},

+ 1 - 0
apps/emqx_gcp_device/mix.exs

@@ -27,6 +27,7 @@ defmodule EMQXGCPDevice.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       {:emqx_auth, in_umbrella: true},
       UMP.common_dep(:jose),

+ 1 - 0
apps/emqx_license/mix.exs

@@ -26,6 +26,7 @@ defmodule EMQXLicense.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       {:emqx_utils, in_umbrella: true},
       {:emqx_ctl, in_umbrella: true},

apps/emqx_exhook/lib/emqx/grpc/template/client.eex → apps/emqx_mix_utils/lib/emqx/grpc/template/client.eex


apps/emqx_exhook/lib/emqx/grpc/template/service.eex → apps/emqx_mix_utils/lib/emqx/grpc/template/service.eex


apps/emqx_durable_storage/lib/mix/tasks/compile.asn1.ex → apps/emqx_mix_utils/lib/mix/tasks/compile.asn1.ex


apps/emqx/lib/mix/tasks/compile.copy_srcs.ex → apps/emqx_mix_utils/lib/mix/tasks/compile.copy_srcs.ex


apps/emqx_exhook/lib/mix/tasks/compile.grpc.ex → apps/emqx_mix_utils/lib/mix/tasks/compile.grpc.ex


lib/mix/tasks/emqx.ct.ex → apps/emqx_mix_utils/lib/mix/tasks/emqx.ct.ex


+ 0 - 6
lib/mix/tasks/emqx.dialyzer.ex

@@ -1,12 +1,6 @@
 defmodule Mix.Tasks.Emqx.Dialyzer do
   use Mix.Task
 
-  alias EMQXUmbrella.MixProject, as: UMP
-
-  if UMP.new_mix_build?() do
-    Code.require_file("emqx.ct.ex", __DIR__)
-  end
-
   alias Mix.Tasks.Emqx.Ct, as: ECt
 
   @requirements ["compile", "loadpaths"]

+ 0 - 6
lib/mix/tasks/emqx.eunit.ex

@@ -1,12 +1,6 @@
 defmodule Mix.Tasks.Emqx.Eunit do
   use Mix.Task
 
-  alias EMQXUmbrella.MixProject, as: UMP
-
-  if UMP.new_mix_build?() do
-    Code.require_file("emqx.ct.ex", __DIR__)
-  end
-
   alias Mix.Tasks.Emqx.Ct, as: ECt
 
   # todo: invoke the equivalent of `make merge-config` as a requirement...

+ 0 - 2
lib/mix/tasks/emqx.proper.ex

@@ -1,8 +1,6 @@
 defmodule Mix.Tasks.Emqx.Proper do
   use Mix.Task
 
-  # Code.require_file("emqx.ct.ex", __DIR__)
-
   alias Mix.Tasks.Emqx.Ct, as: ECt
 
   # todo: invoke the equivalent of `make merge-config` as a requirement...

+ 26 - 0
apps/emqx_mix_utils/mix.exs

@@ -0,0 +1,26 @@
+defmodule EMQXMixUtils.MixProject do
+  use Mix.Project
+  alias EMQXUmbrella.MixProject, as: UMP
+
+  def project do
+    [
+      app: :emqx_mix_utils,
+      version: "0.1.0",
+      build_path: "../../_build",
+      deps_path: "../../deps",
+      lockfile: "../../mix.lock",
+      elixir: "~> 1.14",
+      start_permanent: Mix.env() == :prod,
+      deps: deps()
+    ]
+  end
+
+  # Run "mix help compile.app" to learn about applications
+  def application do
+    [extra_applications: UMP.extra_applications()]
+  end
+
+  def deps() do
+    []
+  end
+end

+ 1 - 0
apps/emqx_s3/mix.exs

@@ -26,6 +26,7 @@ defmodule EMQXS3.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       UMP.common_dep(:gproc),
       UMP.common_dep(:ehttpc),

+ 1 - 0
apps/emqx_telemetry/mix.exs

@@ -26,6 +26,7 @@ defmodule EMQXTelemetry.MixProject do
 
   def deps() do
     [
+      {:emqx_mix_utils, in_umbrella: true, runtime: false},
       {:emqx, in_umbrella: true},
       {:emqx_utils, in_umbrella: true},
       {:emqx_conf, in_umbrella: true}

+ 1 - 6
mix.exs

@@ -40,8 +40,6 @@ defmodule EMQXUmbrella.MixProject do
 
     if new_mix_build?() do
       [
-        # TODO: these lines will be uncommented when we switch to using mix as the manager
-        # for all umbrella apps.
         apps_path: "apps",
         apps:
           applications(profile_info.release_type, profile_info.edition_type) |> Keyword.keys(),
@@ -315,6 +313,7 @@ defmodule EMQXUmbrella.MixProject do
           false
       end
     end)
+    |> Enum.reject(fn {app, _} -> app == :emqx_mix_utils end)
     |> Enum.reject(fn {app, _} -> app in excluded_apps end)
   end
 
@@ -1316,26 +1315,22 @@ defmodule EMQXUmbrella.MixProject do
     ensure_test_mix_env!()
     set_test_env!(true)
 
-    Code.require_file("lib/mix/tasks/emqx.ct.ex")
     Mix.Task.run("emqx.ct", args)
   end
 
   defp do_eunit(args) do
     ensure_test_mix_env!()
     set_test_env!(true)
-    Code.require_file("lib/mix/tasks/emqx.eunit.ex")
     Mix.Task.run("emqx.eunit", args)
   end
 
   defp do_proper(args) do
     ensure_test_mix_env!()
     set_test_env!(true)
-    Code.require_file("lib/mix/tasks/emqx.proper.ex")
     Mix.Task.run("emqx.proper", args)
   end
 
   defp do_dialyzer(args) do
-    Code.require_file("lib/mix/tasks/emqx.dialyzer.ex")
     Mix.Task.run("emqx.dialyzer", args)
   end