From 4ff7fb87a47fb449891927b75c716a05a344259d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20D=C5=82ugosz?= Date: Tue, 4 Apr 2023 11:08:09 +0200 Subject: [PATCH 1/5] Add capability of measuring async sql execute requests --- big_tests/tests/rdbms_SUITE.erl | 31 +++++++++++++++++++++++++++++++ src/rdbms/mongoose_rdbms.erl | 24 +++++++++++++++++++++--- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/big_tests/tests/rdbms_SUITE.erl b/big_tests/tests/rdbms_SUITE.erl index 4c28aeac960..635c80c98ac 100644 --- a/big_tests/tests/rdbms_SUITE.erl +++ b/big_tests/tests/rdbms_SUITE.erl @@ -69,6 +69,7 @@ rdbms_queries_cases() -> insert_batch_with_null_case, test_cast_insert, test_request_insert, + test_measured_request, test_request_transaction, test_restart_transaction_with_execute, test_restart_transaction_with_execute_eventually_passes, @@ -387,6 +388,33 @@ test_request_insert(Config) -> selected_to_sorted(SelectResult)) end, ok, #{name => request_queries}). +test_measured_request(Config) -> + % given + erase_table(Config), + sql_prepare(Config, insert_one, test_types, [unicode], + <<"INSERT INTO test_types(unicode) VALUES (?)">>), + rpc(mim(), mongoose_metrics, ensure_metric, [global, [test_metric], histogram]), + MeasureFun = fun(SqlExecute) -> + {Time, Result} = timer:tc(SqlExecute), + mongoose_metrics:update(global, [test_metric], Time), + Result + end, + + % when + sql_execute_measured_request(Config, insert_one, [<<"check1">>], MeasureFun), + + % then + mongoose_helper:wait_until( + fun() -> + SelectResult = sql_query(Config, "SELECT unicode FROM test_types"), + ?assertEqual({selected, [{<<"check1">>}]}, selected_to_sorted(SelectResult)) + end, ok, #{name => request_queries}), + + {ok, Metric} = rpc(mim(), mongoose_metrics, get_metric_value, [global, [test_metric]]), + MetricValue = proplists:get_value(mean, Metric), + ?assert(MetricValue > 0), + ok. + test_request_transaction(Config) -> erase_table(Config), Queries = [<<"INSERT INTO test_types(unicode) VALUES ('check1')">>, @@ -515,6 +543,9 @@ sql_query_cast(_Config, Query) -> sql_execute_request(_Config, Name, Parameters) -> slow_rpc(mongoose_rdbms, execute_request, [host_type(), Name, Parameters]). +sql_execute_measured_request(_Config, Name, Parameters, MeasureFun) -> + slow_rpc(mongoose_rdbms, execute_measured_request, [host_type(), Name, Parameters, MeasureFun]). + sql_execute_upsert(_Config, Name, Insert, Update, Unique) -> slow_rpc(rdbms_queries, execute_upsert, [host_type(), Name, Insert, Update, Unique]). diff --git a/src/rdbms/mongoose_rdbms.erl b/src/rdbms/mongoose_rdbms.erl index 144db5fd039..91cbe8eee8d 100644 --- a/src/rdbms/mongoose_rdbms.erl +++ b/src/rdbms/mongoose_rdbms.erl @@ -70,6 +70,7 @@ execute/3, execute_cast/3, execute_request/3, + execute_measured_request/4, execute_successfully/3, sql_query/2, sql_query_cast/2, @@ -128,6 +129,7 @@ -ignore_xref([sql_query_cast/2, sql_query_request/2, execute_cast/3, execute_request/3, + execute_measured_request/4, sql_transaction_request/2, sql_query_t/1, use_escaped/1, escape_like/1, escape_like_prefix/1, use_escaped_like/1, @@ -162,7 +164,8 @@ -type rdbms_msg() :: {sql_query, _} | {sql_transaction, fun()} | {sql_dirty, fun()} - | {sql_execute, atom(), [binary() | boolean() | integer()]}. + | {sql_execute, atom(), [binary() | boolean() | integer()]} + | {sql_execute_measured, atom(), [binary() | boolean() | integer()], fun((fun(() -> T)) -> T)}. -type single_query_result() :: {selected, [tuple()]} | {updated, non_neg_integer() | undefined} | {updated, non_neg_integer(), [tuple()]} | @@ -241,6 +244,17 @@ execute_cast(HostType, Name, Parameters) when is_atom(Name), is_list(Parameters) execute_request(HostType, Name, Parameters) when is_atom(Name), is_list(Parameters) -> sql_request(HostType, {sql_execute, Name, Parameters}). +-spec execute_measured_request( + HostType :: server(), + Name :: atom(), + Parameters :: [term()], + MeasureFun :: fun((fun(() -> T)) -> T) +) -> request_id(). +execute_measured_request(HostType, Name, Parameters, MeasureFun) + when is_atom(Name), is_list(Parameters), is_function(MeasureFun) -> + sql_request(HostType, {sql_execute_measured, Name, Parameters, MeasureFun}). + + %% Same as execute/3, but would fail loudly on any error. -spec execute_successfully(HostType :: server(), Name :: atom(), Parameters :: [term()]) -> query_result(). @@ -689,7 +703,9 @@ outer_op({sql_transaction, F}, State) -> outer_op({sql_dirty, F}, State) -> sql_dirty_internal(F, State); outer_op({sql_execute, Name, Params}, State) -> - sql_execute(outer_op, Name, Params, State). + sql_execute(outer_op, Name, Params, State); +outer_op({sql_execute_measured, Name, Params, MeasureFun}, State) -> + MeasureFun(fun() -> sql_execute(outer_op, Name, Params, State) end). %% @doc Called via sql_query/transaction/bloc from client code when inside a %% nested operation @@ -703,7 +719,9 @@ nested_op({sql_transaction, F}, State) -> %% Transaction inside a transaction inner_transaction(F, State); nested_op({sql_execute, Name, Params}, State) -> - sql_execute(nested_op, Name, Params, State). + sql_execute(nested_op, Name, Params, State); +nested_op({sql_execute_measured, Name, Params, MeasureFun}, State) -> + MeasureFun(fun() -> sql_execute(nested_op, Name, Params, State) end). %% @doc Never retry nested transactions - only outer transactions -spec inner_transaction(fun(), state()) -> transaction_result() | {'EXIT', any()}. From b759432d18b8c71ce4f70c061b54b5288fc510ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20D=C5=82ugosz?= Date: Wed, 5 Apr 2023 13:29:33 +0200 Subject: [PATCH 2/5] Code review follow-up --- big_tests/tests/rdbms_SUITE.erl | 52 +++++++++++++++++++++++++++------ src/rdbms/mongoose_rdbms.erl | 26 ++++++++--------- 2 files changed, 56 insertions(+), 22 deletions(-) diff --git a/big_tests/tests/rdbms_SUITE.erl b/big_tests/tests/rdbms_SUITE.erl index 635c80c98ac..17ac8b6f61f 100644 --- a/big_tests/tests/rdbms_SUITE.erl +++ b/big_tests/tests/rdbms_SUITE.erl @@ -69,10 +69,11 @@ rdbms_queries_cases() -> insert_batch_with_null_case, test_cast_insert, test_request_insert, - test_measured_request, + test_wrapped_request, test_request_transaction, test_restart_transaction_with_execute, test_restart_transaction_with_execute_eventually_passes, + test_failed_transaction_with_execute_wrapped, test_incremental_upsert, arguments_from_two_tables]. @@ -103,7 +104,8 @@ init_per_testcase(CaseName, Config) -> end_per_testcase(CaseName, Config) when CaseName =:= test_restart_transaction_with_execute; - CaseName =:= test_restart_transaction_with_execute_eventually_passes -> + CaseName =:= test_restart_transaction_with_execute_eventually_passes; + CaseName =:= test_failed_transaction_with_execute_wrapped -> rpc(mim(), meck, unload, []), escalus:end_per_testcase(CaseName, Config); end_per_testcase(test_incremental_upsert, Config) -> @@ -388,20 +390,20 @@ test_request_insert(Config) -> selected_to_sorted(SelectResult)) end, ok, #{name => request_queries}). -test_measured_request(Config) -> +test_wrapped_request(Config) -> % given erase_table(Config), sql_prepare(Config, insert_one, test_types, [unicode], <<"INSERT INTO test_types(unicode) VALUES (?)">>), rpc(mim(), mongoose_metrics, ensure_metric, [global, [test_metric], histogram]), - MeasureFun = fun(SqlExecute) -> + WrapperFun = fun(SqlExecute) -> {Time, Result} = timer:tc(SqlExecute), mongoose_metrics:update(global, [test_metric], Time), Result end, % when - sql_execute_measured_request(Config, insert_one, [<<"check1">>], MeasureFun), + sql_execute_wrapped_request(Config, insert_one, [<<"check1">>], WrapperFun), % then mongoose_helper:wait_until( @@ -412,8 +414,7 @@ test_measured_request(Config) -> {ok, Metric} = rpc(mim(), mongoose_metrics, get_metric_value, [global, [test_metric]]), MetricValue = proplists:get_value(mean, Metric), - ?assert(MetricValue > 0), - ok. + ?assert(MetricValue > 0). test_request_transaction(Config) -> erase_table(Config), @@ -459,6 +460,29 @@ test_restart_transaction_with_execute_eventually_passes(Config) -> called_times(3), ok. +test_failed_transaction_with_execute_wrapped(Config) -> + % given + HostType = host_type(), + Pid = self(), + erase_table(Config), + prepare_insert_int8(Config), + ok = rpc(mim(), meck, new, [mongoose_rdbms_backend, [passthrough, no_link]]), + ok = rpc(mim(), meck, expect, [mongoose_rdbms_backend, execute, 4, + {error, simulated_db_error}]), + WrapperFun = fun(SqlExecute) -> + Pid ! msg_before, + Result = SqlExecute(), + Pid ! msg_after, + Result + end, + + % when + F = fun() -> mongoose_rdbms:execute_wrapped_request(HostType, insert_int8, [2], WrapperFun) end, + {aborted, #{reason := simulated_db_error}} = sql_transaction(Config, F), + + % then + check_not_reveived(msg_after). + prepare_insert_int8(Config) -> Q = <<"INSERT INTO test_types(", (escape_column(<<"int8">>))/binary, ") VALUES (?)">>, sql_prepare(Config, insert_int8, test_types, [int8], Q). @@ -543,8 +567,8 @@ sql_query_cast(_Config, Query) -> sql_execute_request(_Config, Name, Parameters) -> slow_rpc(mongoose_rdbms, execute_request, [host_type(), Name, Parameters]). -sql_execute_measured_request(_Config, Name, Parameters, MeasureFun) -> - slow_rpc(mongoose_rdbms, execute_measured_request, [host_type(), Name, Parameters, MeasureFun]). +sql_execute_wrapped_request(_Config, Name, Parameters, WrapperFun) -> + slow_rpc(mongoose_rdbms, execute_wrapped_request, [host_type(), Name, Parameters, WrapperFun]). sql_execute_upsert(_Config, Name, Insert, Update, Unique) -> slow_rpc(rdbms_queries, execute_upsert, [host_type(), Name, Insert, Update, Unique]). @@ -1061,6 +1085,16 @@ slow_rpc(M, F, A) -> Res end. +check_not_reveived(Msg) -> + receive + Msg -> + error({msg_received, Msg}); + _ -> + check_not_reveived(Msg) + after 0 -> + ok + end. + check_like_prep(Config, TextMap = #{text := TextValue, matching := MatchingList, not_matching := NotMatchingList}) -> diff --git a/src/rdbms/mongoose_rdbms.erl b/src/rdbms/mongoose_rdbms.erl index 91cbe8eee8d..bd36f74803d 100644 --- a/src/rdbms/mongoose_rdbms.erl +++ b/src/rdbms/mongoose_rdbms.erl @@ -70,7 +70,7 @@ execute/3, execute_cast/3, execute_request/3, - execute_measured_request/4, + execute_wrapped_request/4, execute_successfully/3, sql_query/2, sql_query_cast/2, @@ -129,7 +129,7 @@ -ignore_xref([sql_query_cast/2, sql_query_request/2, execute_cast/3, execute_request/3, - execute_measured_request/4, + execute_wrapped_request/4, sql_transaction_request/2, sql_query_t/1, use_escaped/1, escape_like/1, escape_like_prefix/1, use_escaped_like/1, @@ -161,11 +161,12 @@ -define(CONNECT_RETRIES, 5). -type server() :: mongooseim:host_type() | global. +-type request_wrapper() :: fun((fun(() -> T)) -> T). -type rdbms_msg() :: {sql_query, _} | {sql_transaction, fun()} | {sql_dirty, fun()} | {sql_execute, atom(), [binary() | boolean() | integer()]} - | {sql_execute_measured, atom(), [binary() | boolean() | integer()], fun((fun(() -> T)) -> T)}. + | {sql_execute_wrapped, atom(), [binary() | boolean() | integer()], request_wrapper()}. -type single_query_result() :: {selected, [tuple()]} | {updated, non_neg_integer() | undefined} | {updated, non_neg_integer(), [tuple()]} | @@ -244,15 +245,14 @@ execute_cast(HostType, Name, Parameters) when is_atom(Name), is_list(Parameters) execute_request(HostType, Name, Parameters) when is_atom(Name), is_list(Parameters) -> sql_request(HostType, {sql_execute, Name, Parameters}). --spec execute_measured_request( +-spec execute_wrapped_request( HostType :: server(), Name :: atom(), Parameters :: [term()], - MeasureFun :: fun((fun(() -> T)) -> T) -) -> request_id(). -execute_measured_request(HostType, Name, Parameters, MeasureFun) - when is_atom(Name), is_list(Parameters), is_function(MeasureFun) -> - sql_request(HostType, {sql_execute_measured, Name, Parameters, MeasureFun}). + Wrapper :: request_wrapper()) -> request_id(). +execute_wrapped_request(HostType, Name, Parameters, Wrapper) + when is_atom(Name), is_list(Parameters), is_function(Wrapper) -> + sql_request(HostType, {sql_execute_wrapped, Name, Parameters, Wrapper}). %% Same as execute/3, but would fail loudly on any error. @@ -704,8 +704,8 @@ outer_op({sql_dirty, F}, State) -> sql_dirty_internal(F, State); outer_op({sql_execute, Name, Params}, State) -> sql_execute(outer_op, Name, Params, State); -outer_op({sql_execute_measured, Name, Params, MeasureFun}, State) -> - MeasureFun(fun() -> sql_execute(outer_op, Name, Params, State) end). +outer_op({sql_execute_wrapped, Name, Params, Wrapper}, State) -> + Wrapper(fun() -> sql_execute(outer_op, Name, Params, State) end). %% @doc Called via sql_query/transaction/bloc from client code when inside a %% nested operation @@ -720,8 +720,8 @@ nested_op({sql_transaction, F}, State) -> inner_transaction(F, State); nested_op({sql_execute, Name, Params}, State) -> sql_execute(nested_op, Name, Params, State); -nested_op({sql_execute_measured, Name, Params, MeasureFun}, State) -> - MeasureFun(fun() -> sql_execute(nested_op, Name, Params, State) end). +nested_op({sql_execute_wrapped, Name, Params, Wrapper}, State) -> + Wrapper(fun() -> sql_execute(nested_op, Name, Params, State) end). %% @doc Never retry nested transactions - only outer transactions -spec inner_transaction(fun(), state()) -> transaction_result() | {'EXIT', any()}. From 95f7c68af64d835903d322555e9b59a8b753d048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20D=C5=82ugosz?= Date: Thu, 13 Apr 2023 10:59:33 +0200 Subject: [PATCH 3/5] Code review follow-up --- big_tests/tests/rdbms_SUITE.erl | 44 ++++++++++++++++++++++++++++++--- src/rdbms/mongoose_rdbms.erl | 9 +++++-- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/big_tests/tests/rdbms_SUITE.erl b/big_tests/tests/rdbms_SUITE.erl index 17ac8b6f61f..6431a1278c5 100644 --- a/big_tests/tests/rdbms_SUITE.erl +++ b/big_tests/tests/rdbms_SUITE.erl @@ -70,10 +70,12 @@ rdbms_queries_cases() -> test_cast_insert, test_request_insert, test_wrapped_request, + test_failed_wrapper, test_request_transaction, test_restart_transaction_with_execute, test_restart_transaction_with_execute_eventually_passes, test_failed_transaction_with_execute_wrapped, + test_failed_wrapper_transaction, test_incremental_upsert, arguments_from_two_tables]. @@ -105,7 +107,9 @@ init_per_testcase(CaseName, Config) -> end_per_testcase(CaseName, Config) when CaseName =:= test_restart_transaction_with_execute; CaseName =:= test_restart_transaction_with_execute_eventually_passes; - CaseName =:= test_failed_transaction_with_execute_wrapped -> + CaseName =:= test_failed_transaction_with_execute_wrapped; + CaseName =:= test_failed_wrapper; + CaseName =:= test_failed_wrapper_transaction -> rpc(mim(), meck, unload, []), escalus:end_per_testcase(CaseName, Config); end_per_testcase(test_incremental_upsert, Config) -> @@ -416,6 +420,22 @@ test_wrapped_request(Config) -> MetricValue = proplists:get_value(mean, Metric), ?assert(MetricValue > 0). +test_failed_wrapper(Config) -> + % given + erase_table(Config), + sql_prepare(Config, insert_one, test_types, [unicode], + <<"INSERT INTO test_types(unicode) VALUES (?)">>), + ok = rpc(mim(), meck, new, [supervisor, [passthrough, no_link, unstick]]), + WrapperFun = fun(_SqlExecute) -> + error(wrapper_crashed) + end, + + % when + sql_execute_wrapped_request(Config, insert_one, [<<"check1">>], WrapperFun), + + % then + ?assertEqual([], rpc(mim(), meck, history, [supervisor])). + test_request_transaction(Config) -> erase_table(Config), Queries = [<<"INSERT INTO test_types(unicode) VALUES ('check1')">>, @@ -481,7 +501,23 @@ test_failed_transaction_with_execute_wrapped(Config) -> {aborted, #{reason := simulated_db_error}} = sql_transaction(Config, F), % then - check_not_reveived(msg_after). + check_not_received(msg_after). + +test_failed_wrapper_transaction(Config) -> + % given + erase_table(Config), + prepare_insert_int8(Config), + ok = rpc(mim(), meck, new, [supervisor, [passthrough, no_link, unstick]]), + WrapperFun = fun(_SqlExecute) -> + error(wrapper_crashed) + end, + + % when + F = fun() -> sql_execute_wrapped_request(Config, insert_one, [<<"check1">>], WrapperFun) end, + sql_transaction(Config, F), + + % then + ?assertEqual([], rpc(mim(), meck, history, [supervisor])). prepare_insert_int8(Config) -> Q = <<"INSERT INTO test_types(", (escape_column(<<"int8">>))/binary, ") VALUES (?)">>, @@ -1085,12 +1121,12 @@ slow_rpc(M, F, A) -> Res end. -check_not_reveived(Msg) -> +check_not_received(Msg) -> receive Msg -> error({msg_received, Msg}); _ -> - check_not_reveived(Msg) + check_not_received(Msg) after 0 -> ok end. diff --git a/src/rdbms/mongoose_rdbms.erl b/src/rdbms/mongoose_rdbms.erl index bd36f74803d..932969df21d 100644 --- a/src/rdbms/mongoose_rdbms.erl +++ b/src/rdbms/mongoose_rdbms.erl @@ -254,7 +254,6 @@ execute_wrapped_request(HostType, Name, Parameters, Wrapper) when is_atom(Name), is_list(Parameters), is_function(Wrapper) -> sql_request(HostType, {sql_execute_wrapped, Name, Parameters, Wrapper}). - %% Same as execute/3, but would fail loudly on any error. -spec execute_successfully(HostType :: server(), Name :: atom(), Parameters :: [term()]) -> query_result(). @@ -705,7 +704,13 @@ outer_op({sql_dirty, F}, State) -> outer_op({sql_execute, Name, Params}, State) -> sql_execute(outer_op, Name, Params, State); outer_op({sql_execute_wrapped, Name, Params, Wrapper}, State) -> - Wrapper(fun() -> sql_execute(outer_op, Name, Params, State) end). + try + Wrapper(fun() -> sql_execute(outer_op, Name, Params, State) end) + catch + _Class:Error -> + ?LOG_ERROR(#{what => sql_execute_wrapped_failed, reason => Error}), + {{error, Error}, State} + end. %% @doc Called via sql_query/transaction/bloc from client code when inside a %% nested operation From 79ff1a22d73b0219e44ed1faac4f794cc1330eac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20D=C5=82ugosz?= Date: Fri, 14 Apr 2023 10:28:15 +0200 Subject: [PATCH 4/5] Code review follow-up --- big_tests/tests/rdbms_SUITE.erl | 12 ++++++++++-- src/rdbms/mongoose_rdbms.erl | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/big_tests/tests/rdbms_SUITE.erl b/big_tests/tests/rdbms_SUITE.erl index 6431a1278c5..9abc5487e4b 100644 --- a/big_tests/tests/rdbms_SUITE.erl +++ b/big_tests/tests/rdbms_SUITE.erl @@ -407,7 +407,7 @@ test_wrapped_request(Config) -> end, % when - sql_execute_wrapped_request(Config, insert_one, [<<"check1">>], WrapperFun), + sql_execute_wrapped_request_and_wait_response(Config, insert_one, [<<"check1">>], WrapperFun), % then mongoose_helper:wait_until( @@ -431,9 +431,10 @@ test_failed_wrapper(Config) -> end, % when - sql_execute_wrapped_request(Config, insert_one, [<<"check1">>], WrapperFun), + Result = sql_execute_wrapped_request_and_wait_response(Config, insert_one, [<<"check1">>], WrapperFun), % then + ?assertEqual({reply,{error,wrapper_crashed}}, Result), ?assertEqual([], rpc(mim(), meck, history, [supervisor])). test_request_transaction(Config) -> @@ -606,6 +607,13 @@ sql_execute_request(_Config, Name, Parameters) -> sql_execute_wrapped_request(_Config, Name, Parameters, WrapperFun) -> slow_rpc(mongoose_rdbms, execute_wrapped_request, [host_type(), Name, Parameters, WrapperFun]). +sql_execute_wrapped_request_and_wait_response(_Config, Name, Parameters, WrapperFun) -> + slow_rpc(?MODULE, execute_wrapped_request_and_wait_response, [host_type(), Name, Parameters, WrapperFun]). + +execute_wrapped_request_and_wait_response(HostType, Name, Parameters, WrapperFun) -> + RequestId = mongoose_rdbms:execute_wrapped_request(HostType, Name, Parameters, WrapperFun), + gen_server:wait_response(RequestId, 100). + sql_execute_upsert(_Config, Name, Insert, Update, Unique) -> slow_rpc(rdbms_queries, execute_upsert, [host_type(), Name, Insert, Update, Unique]). diff --git a/src/rdbms/mongoose_rdbms.erl b/src/rdbms/mongoose_rdbms.erl index 932969df21d..19ba47ad29b 100644 --- a/src/rdbms/mongoose_rdbms.erl +++ b/src/rdbms/mongoose_rdbms.erl @@ -708,7 +708,8 @@ outer_op({sql_execute_wrapped, Name, Params, Wrapper}, State) -> Wrapper(fun() -> sql_execute(outer_op, Name, Params, State) end) catch _Class:Error -> - ?LOG_ERROR(#{what => sql_execute_wrapped_failed, reason => Error}), + ?LOG_ERROR(#{what => sql_execute_wrapped_failed, reason => Error, + statement_name => Name, wrapper_fun => Wrapper}), {{error, Error}, State} end. From 5ad1b669c9e43d7c9c8fa7f34bb60d3b0006033a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20D=C5=82ugosz?= Date: Fri, 14 Apr 2023 11:12:19 +0200 Subject: [PATCH 5/5] Disable deprecated codecov uploader from CircleCI --- .circleci/template.yml | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/.circleci/template.yml b/.circleci/template.yml index 1c6062b1c2b..775cda69733 100644 --- a/.circleci/template.yml +++ b/.circleci/template.yml @@ -295,23 +295,24 @@ commands: restore_workspace: steps: - attach_workspace: {at: ~/project} - fetch_coverage_packages: - steps: - - run: - name: Install pip3 and codecov packages - command: | - tools/circle-install-packages.sh python3-pip && \ - pip3 install codecov - run_coverage_analysis: - steps: - - fetch_coverage_packages - - run: - name: Coverage - when: on_success - command: | - echo "Success!" - $EXEC ./rebar3 codecov analyze - codecov --disable=gcov --env PRESET + # TODO migrate to a new codecov uploader, see - https://docs.codecov.com/docs/deprecated-uploader-migration-guide#python-uploader + # fetch_coverage_packages: + # steps: + # - run: + # name: Install pip3 and codecov packages + # command: | + # tools/circle-install-packages.sh python3-pip && \ + # pip3 install codecov + # run_coverage_analysis: + # steps: + # - fetch_coverage_packages + # - run: + # name: Coverage + # when: on_success + # command: | + # echo "Success!" + # $EXEC ./rebar3 codecov analyze + # codecov --disable=gcov --env PRESET run_small_tests: steps: - restore_workspace @@ -323,7 +324,7 @@ commands: name: Run Small Tests command: | $EXEC tools/test.sh -p small_tests -s true -e true - - run_coverage_analysis + # - run_coverage_analysis - upload_results_to_aws - publish_github_comment run_docker_smoke_test: @@ -650,7 +651,7 @@ jobs: - store_test_results: when: always path: junit_report.xml - - run_coverage_analysis + # - run_coverage_analysis - run: name: Build Failed - Logs when: on_fail