ci: temporarily revert mix release back to old version

This is so we may merge the huge PR as is and work on the fixes later with less conflicts.
This commit is contained in:
Thales Macedo Garitezi 2024-07-01 13:24:15 -03:00
parent bd0c8f0204
commit 8a68f5dada
4 changed files with 181 additions and 10 deletions

View File

@ -63,10 +63,8 @@ mix-deps-get: $(ELIXIR_COMMON_DEPS)
@mix deps.get
.PHONY: eunit
eunit: $(REBAR) ${ELIXIR_COMMON_DEPS} merge-config
# @$(REBAR) eunit --name eunit@127.0.0.1 -c -v --cover_export_name $(CT_COVER_EXPORT_PREFIX)-eunit
# TODO: cover compile
mix eunit
eunit: $(REBAR) merge-config
@$(REBAR) eunit --name eunit@127.0.0.1 -c -v --cover_export_name $(CT_COVER_EXPORT_PREFIX)-eunit
.PHONY: proper
proper: $(REBAR)

View File

@ -1,7 +1,7 @@
defmodule Mix.Tasks.Emqx.Eunit do
use Mix.Task
Code.require_file("emqx.ct.ex", __DIR__)
# Code.require_file("emqx.ct.ex", __DIR__)
alias Mix.Tasks.Emqx.Ct, as: ECt

View File

@ -1,7 +1,7 @@
defmodule Mix.Tasks.Emqx.Proper do
use Mix.Task
Code.require_file("emqx.ct.ex", __DIR__)
# Code.require_file("emqx.ct.ex", __DIR__)
alias Mix.Tasks.Emqx.Ct, as: ECt

181
mix.exs
View File

@ -34,9 +34,12 @@ defmodule EMQXUmbrella.MixProject do
version = pkg_vsn()
[
# app: :emqx_mix,
apps_path: "apps",
apps: applications(profile_info.release_type, profile_info.edition_type) |> Keyword.keys(),
# 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(),
app: :emqx_mix,
erlc_options: erlc_options(profile_info, version),
version: version,
deps: deps(profile_info, version),
@ -48,6 +51,10 @@ defmodule EMQXUmbrella.MixProject do
defp deps(profile_info, version) do
# we need several overrides here because dependencies specify
# other exact versions, and not ranges.
## TODO: this should be removed once we migrate the release build to mix
rebar3_umbrella_apps = emqx_apps(profile_info, version) ++ enterprise_deps(profile_info)
common_deps() ++
[
{:lc, github: "emqx/lc", tag: "0.3.2", override: true},
@ -118,9 +125,175 @@ defmodule EMQXUmbrella.MixProject do
{:quickrand, github: "okeuday/quickrand", tag: "v2.0.6", override: true},
{:ra, "2.7.3", override: true},
{:mimerl, "1.2.0", override: true}
] ++ jq_dep() ++ quicer_dep()
] ++
jq_dep() ++
quicer_dep() ++ rebar3_umbrella_apps
end
###############################################################################################
# BEGIN DEPRECATED FOR MIX BLOCK
# These should be removed once we fully migrate to mix
###############################################################################################
defp emqx_apps(profile_info, version) do
apps = umbrella_apps(profile_info) ++ enterprise_apps(profile_info)
set_emqx_app_system_env(apps, profile_info, version)
end
defp umbrella_apps(profile_info = %{release_type: release_type}) do
enterprise_apps = enterprise_umbrella_apps(release_type)
excluded_apps = excluded_apps(release_type)
"apps/*"
|> Path.wildcard()
|> Enum.map(fn path ->
app =
path
|> Path.basename()
|> String.to_atom()
{app, path: path, manager: :rebar3, override: true}
end)
|> Enum.reject(fn dep_spec ->
dep_spec
|> elem(0)
|> then(&MapSet.member?(enterprise_apps, &1))
end)
|> Enum.reject(fn {app, _} ->
case profile_info do
%{edition_type: :enterprise} ->
app == :emqx_telemetry
_ ->
false
end
end)
|> Enum.reject(fn {app, _} -> app in excluded_apps end)
end
defp enterprise_apps(_profile_info = %{release_type: release_type, edition_type: :enterprise}) do
Enum.map(enterprise_umbrella_apps(release_type), fn app_name ->
path = "apps/#{app_name}"
{app_name, path: path, manager: :rebar3, override: true}
end)
end
defp enterprise_apps(_profile_info) do
[]
end
# need to remove those when listing `/apps/`...
defp enterprise_umbrella_apps(_release_type) do
MapSet.new([
:emqx_connector_aggregator,
:emqx_bridge_kafka,
:emqx_bridge_confluent,
:emqx_bridge_gcp_pubsub,
:emqx_bridge_cassandra,
:emqx_bridge_opents,
:emqx_bridge_dynamo,
:emqx_bridge_greptimedb,
:emqx_bridge_hstreamdb,
:emqx_bridge_influxdb,
:emqx_bridge_iotdb,
:emqx_bridge_es,
:emqx_bridge_matrix,
:emqx_bridge_mongodb,
:emqx_bridge_mysql,
:emqx_bridge_pgsql,
:emqx_bridge_redis,
:emqx_bridge_rocketmq,
:emqx_bridge_tdengine,
:emqx_bridge_timescale,
:emqx_bridge_sqlserver,
:emqx_bridge_pulsar,
:emqx_oracle,
:emqx_bridge_oracle,
:emqx_bridge_rabbitmq,
:emqx_bridge_clickhouse,
:emqx_ft,
:emqx_license,
:emqx_s3,
:emqx_bridge_s3,
:emqx_bridge_azure_blob_storage,
:emqx_schema_registry,
:emqx_schema_validation,
:emqx_message_transformation,
:emqx_enterprise,
:emqx_bridge_kinesis,
:emqx_bridge_azure_event_hub,
:emqx_gcp_device,
:emqx_dashboard_rbac,
:emqx_dashboard_sso,
:emqx_audit,
:emqx_gateway_gbt32960,
:emqx_gateway_ocpp,
:emqx_gateway_jt808,
:emqx_bridge_syskeeper,
:emqx_ds_shared_sub,
:emqx_auth_ext,
:emqx_cluster_link,
:emqx_ds_builtin_raft
])
end
defp enterprise_deps(_profile_info = %{edition_type: :enterprise}) do
[
{:hstreamdb_erl,
github: "hstreamdb/hstreamdb_erl", tag: "0.5.18+v0.18.1+ezstd-v1.0.5-emqx1"},
{:influxdb, github: "emqx/influxdb-client-erl", tag: "1.1.13", override: true},
{:wolff, github: "kafka4beam/wolff", tag: "2.0.0"},
{:kafka_protocol, github: "kafka4beam/kafka_protocol", tag: "4.1.5", override: true},
{:brod_gssapi, github: "kafka4beam/brod_gssapi", tag: "v0.1.1"},
{:brod, github: "kafka4beam/brod", tag: "3.18.0"},
{:snappyer, "1.2.9", override: true},
{:crc32cer, "0.1.8", override: true},
{:opentsdb, github: "emqx/opentsdb-client-erl", tag: "v0.5.1", override: true},
{:greptimedb,
github: "GreptimeTeam/greptimedb-ingester-erl", tag: "v0.1.8", override: true},
# The following two are dependencies of rabbit_common. They are needed here to
# make mix not complain about conflicting versions
{:thoas, github: "emqx/thoas", tag: "v1.0.0", override: true},
{:credentials_obfuscation,
github: "emqx/credentials-obfuscation", tag: "v3.2.0", override: true},
{:rabbit_common,
github: "emqx/rabbitmq-server",
tag: "v3.11.13.2",
sparse: "deps/rabbit_common",
override: true},
{:amqp_client,
github: "emqx/rabbitmq-server",
tag: "v3.11.13.2",
sparse: "deps/amqp_client",
override: true}
]
end
defp enterprise_deps(_profile_info) do
[]
end
defp set_emqx_app_system_env(apps, profile_info, version) do
system_env = emqx_app_system_env(profile_info, version) ++ maybe_no_quic_env()
Enum.map(
apps,
fn {app, opts} ->
{app,
Keyword.update(
opts,
:system_env,
system_env,
&Keyword.merge(&1, system_env)
)}
end
)
end
###############################################################################################
# END DEPRECATED FOR MIX BLOCK
###############################################################################################
def emqx_app_system_env(profile_info, version) do
erlc_options(profile_info, version)
|> dump_as_erl()