perf/run: learn to send output to codespeed server

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>

Christian Couder committed Jan 5, 2018 at 10:12 UTC fccec20f0baf9a801fb0f5a53285256a002b42cd
1 file changed +11 -1
t/perf/run
+11 -1
@@ -148,10 +148,20 @@ run_subsection () {
148 test "$GIT_PERF_CODESPEED_OUTPUT" = "true" && codespeed_opt="--codespeed"
149
150 run_dirs "$@"
151 - ./aggregate.perl $codespeed_opt "$@"
151 +
152 + if test -z "$GIT_PERF_SEND_TO_CODESPEED"
153 + then
154 + ./aggregate.perl $codespeed_opt "$@"
155 + else
156 + json_res_file="test-results/$GIT_PERF_SUBSECTION/aggregate.json"
157 + ./aggregate.perl --codespeed "$@" | tee "$json_res_file"
158 + send_data_url="$GIT_PERF_SEND_TO_CODESPEED/result/add/json/"
159 + curl -v --request POST --data-urlencode "json=$(cat "$json_res_file")" "$send_data_url"
160 + fi
161 }
162
163 get_var_from_env_or_config "GIT_PERF_CODESPEED_OUTPUT" "perf" "codespeedOutput" "--bool"
164 +get_var_from_env_or_config "GIT_PERF_SEND_TO_CODESPEED" "perf" "sendToCodespeed"
165
166 cd "$(dirname $0)"
167 . ../../GIT-BUILD-OPTIONS