|
|
@@ -4,7 +4,7 @@
|
|
|
|
|
|
do(Dir, CONFIG) ->
|
|
|
ok = compile_and_load_pase_transforms(Dir),
|
|
|
- dump(deps(CONFIG) ++ dialyzer(CONFIG) ++ config()).
|
|
|
+ dump(deps(CONFIG) ++ dialyzer(CONFIG) ++ coveralls() ++ config()).
|
|
|
|
|
|
bcrypt() ->
|
|
|
{bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {branch, "0.6.0"}}}.
|
|
|
@@ -27,28 +27,36 @@ plugins() ->
|
|
|
{er_coap_client, {git, "https://github.com/emqx/er_coap_client", {tag, "v1.0"}}}
|
|
|
].
|
|
|
|
|
|
+test_plugins() ->
|
|
|
+ [ {coveralls, {git, "https://github.com/emqx/coveralls-erl", {branch, "github"}}}
|
|
|
+ ].
|
|
|
+
|
|
|
test_deps() ->
|
|
|
[ {bbmustache, "1.10.0"}
|
|
|
, {emqx_ct_helpers, {git, "https://github.com/emqx/emqx-ct-helpers", {tag, "1.3.4"}}}
|
|
|
, meck
|
|
|
].
|
|
|
|
|
|
+default_compile_opts() ->
|
|
|
+ [compressed, deterministic, no_debug_info, warnings_as_errors, {parse_transform, mod_vsn}].
|
|
|
+
|
|
|
profiles() ->
|
|
|
- [ {'emqx', [ {erl_opts, [no_debug_info, warnings_as_errors, {parse_transform, mod_vsn}]}
|
|
|
+ [ {'emqx', [ {erl_opts, default_compile_opts()}
|
|
|
, {relx, relx('emqx')}
|
|
|
]}
|
|
|
- , {'emqx-pkg', [ {erl_opts, [no_debug_info, warnings_as_errors, {parse_transform, mod_vsn}]}
|
|
|
+ , {'emqx-pkg', [ {erl_opts, default_compile_opts()}
|
|
|
, {relx, relx('emqx-pkg')}
|
|
|
]}
|
|
|
- , {'emqx-edge', [ {erl_opts, [no_debug_info, warnings_as_errors, {parse_transform, mod_vsn}]}
|
|
|
+ , {'emqx-edge', [ {erl_opts, default_compile_opts()}
|
|
|
, {relx, relx('emqx-edge')}
|
|
|
]}
|
|
|
- , {'emqx-edge-pkg', [ {erl_opts, [no_debug_info, warnings_as_errors, {parse_transform, mod_vsn}]}
|
|
|
+ , {'emqx-edge-pkg', [ {erl_opts, default_compile_opts()}
|
|
|
, {relx, relx('emqx-edge-pkg')}
|
|
|
]}
|
|
|
, {check, [ {erl_opts, [debug_info, warnings_as_errors, {parse_transform, mod_vsn}]}
|
|
|
]}
|
|
|
, {test, [ {deps, test_deps()}
|
|
|
+ , {plugins, test_plugins()}
|
|
|
, {erl_opts, [debug_info, {parse_transform, mod_vsn}] ++ erl_opts_i()}
|
|
|
]}
|
|
|
].
|
|
|
@@ -295,6 +303,26 @@ dialyzer(Config) ->
|
|
|
Config
|
|
|
end.
|
|
|
|
|
|
+coveralls() ->
|
|
|
+ case {os:getenv("GITHUB_ACTIONS"), os:getenv("GITHUB_TOKEN")} of
|
|
|
+ {"true", Token} when is_list(Token) ->
|
|
|
+ Cfgs = [{coveralls_repo_token, Token},
|
|
|
+ {coveralls_service_job_id, os:getenv("GITHUB_RUN_ID")},
|
|
|
+ {coveralls_commit_sha, os:getenv("GITHUB_SHA")},
|
|
|
+ {coveralls_service_number, os:getenv("GITHUB_RUN_NUMBER")},
|
|
|
+ {coveralls_coverdata, "_build/test/cover/*.coverdata"},
|
|
|
+ {coveralls_service_name, "github"}],
|
|
|
+ case os:getenv("GITHUB_EVENT_NAME") =:= "pull_request"
|
|
|
+ andalso string:tokens(os:getenv("GITHUB_REF"), "/") of
|
|
|
+ [_, "pull", PRNO, _] ->
|
|
|
+ [{coveralls_service_pull_request, PRNO} | Cfgs];
|
|
|
+ _ ->
|
|
|
+ Cfgs
|
|
|
+ end;
|
|
|
+ _ ->
|
|
|
+ []
|
|
|
+ end.
|
|
|
+
|
|
|
list_dir(Dir) ->
|
|
|
{ok, Names} = file:list_dir(Dir),
|
|
|
[list_to_atom(Name) || Name <- Names, filelib:is_dir(filename:join([Dir, Name]))].
|