perf/run: learn to send output to codespeed server
authorChristian Couder <christian.couder@gmail.com>
Fri, 5 Jan 2018 09:12:25 +0000 (10:12 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Jan 2018 20:31:08 +0000 (12:31 -0800)
Let's make it possible to set in a config file the URL of
a codespeed server. And then let's make the `run` script
send the perf test results to this URL at the end of the
tests.

This should make is possible to easily automate the process
of running perf tests and having their results available in
Codespeed.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/perf/run
index 4e62d6bb3f24f60a7d4a8c40beda86240d3cfe57..ef563965469038790a16f17cfee76645aea74b65 100755 (executable)
@@ -148,10 +148,20 @@ run_subsection () {
        test "$GIT_PERF_CODESPEED_OUTPUT" = "true" && codespeed_opt="--codespeed"
 
        run_dirs "$@"
-       ./aggregate.perl $codespeed_opt "$@"
+
+       if test -z "$GIT_PERF_SEND_TO_CODESPEED"
+       then
+               ./aggregate.perl $codespeed_opt "$@"
+       else
+               json_res_file="test-results/$GIT_PERF_SUBSECTION/aggregate.json"
+               ./aggregate.perl --codespeed "$@" | tee "$json_res_file"
+               send_data_url="$GIT_PERF_SEND_TO_CODESPEED/result/add/json/"
+               curl -v --request POST --data-urlencode "json=$(cat "$json_res_file")" "$send_data_url"
+       fi
 }
 
 get_var_from_env_or_config "GIT_PERF_CODESPEED_OUTPUT" "perf" "codespeedOutput" "--bool"
+get_var_from_env_or_config "GIT_PERF_SEND_TO_CODESPEED" "perf" "sendToCodespeed"
 
 cd "$(dirname $0)"
 . ../../GIT-BUILD-OPTIONS