ci(xref): support emqx-ee profile

This commit is contained in:
William Yang 2022-09-06 10:24:19 +02:00
parent 820b60f448
commit 432eae6e55
2 changed files with 44 additions and 35 deletions

View File

@ -7,16 +7,31 @@
%%% instead all the filters, checks are defined in `xref_check.eterm` %%% instead all the filters, checks are defined in `xref_check.eterm`
main(_) -> main(_) ->
{ok, [Jobs]} = file:consult("scripts/xref_check.eterm"), {ok, [Jobs]} = file:consult("scripts/xref_check.eterm"),
lists:foreach(fun(#{ name := Name lists:foreach(fun(J) -> do_check(J) end, Jobs),
case get(is_warn_found) of
true ->
halt(1);
_ ->
ok
end.
do_check(#{ name := Name
, analysis := Analysis , analysis := Analysis
, excl_apps := ExclApps , excl_apps := ExclApps
, excl_mods := ExclMods , excl_mods := ExclMods
, filters := Filters , filters := Filters
}) -> }) ->
xref:start(Name), xref:start(Name),
%% Build a table for later printing more informative warnings.
%% The table is currently not in use.
Tid = ets:new(Name, [ordered_set, named_table]), Tid = ets:new(Name, [ordered_set, named_table]),
xref:set_default(Name, [{verbose,false}, {warnings,false}]), xref:set_default(Name, [{verbose,false}, {warnings,false}]),
xref:add_release(Name, "_build/emqx/rel/emqx/lib/"), Profile = case filelib:is_file("EMQX_ENTERPRISE") of
true -> 'emqx-ee';
false -> emqx
end,
Dir = filename:join(["_build/", Profile, "rel/emqx/lib/"]),
xref:add_release(Name, Dir),
xref:add_application(Name, code:lib_dir(erts)), xref:add_application(Name, code:lib_dir(erts)),
[ case xref:remove_application(Name, App) of [ case xref:remove_application(Name, App) of
ok -> ok; ok -> ok;
@ -31,7 +46,7 @@ main(_) ->
end || M <- ExclMods end || M <- ExclMods
], ],
ModuleInfos = xref:info(Name, modules), ModuleInfos = xref:info(Name, modules),
LibInfos = xref:info(Name, modules), LibInfos = xref:info(Name, libraries),
true = ets:insert(Tid, ModuleInfos ++ LibInfos), true = ets:insert(Tid, ModuleInfos ++ LibInfos),
{ok, Res0} = xref:analyse(Name, Analysis), {ok, Res0} = xref:analyse(Name, Analysis),
Res = Res0 -- Filters, Res = Res0 -- Filters,
@ -40,11 +55,4 @@ main(_) ->
put(is_warn_found, true), put(is_warn_found, true),
io:format("** Warnings for ~p~n : ~p~n", [Name, Res]) io:format("** Warnings for ~p~n : ~p~n", [Name, Res])
end, end,
xref:stop(Name) xref:stop(Name).
end, Jobs),
case get(is_warn_found) of
true ->
halt(1);
_ ->
ok
end.

View File

@ -1,3 +1,4 @@
%% -*- mode: erlang; -*-
[ %% Check undefined_function_calls [ %% Check undefined_function_calls
#{ name => undefined_function_calls #{ name => undefined_function_calls
, analysis => undefined_function_calls , analysis => undefined_function_calls