Mailspring/scripts/benchmark-new-commits.sh
Mark Hahnenberg 9270ff6c4c [client-app] Add script that benchmarks new commits
Summary:
We want to setup the initial sync benchmark to run automatically with each
commit on a separate machine. This script does just that and dumps the
results to a directory. We can then have a separate script process them
and upload them to whichever service we want.

Test Plan: Run locally

Reviewers: evan, spang, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D4296
2017-03-30 16:11:49 -07:00

28 lines
780 B
Bash

#!/bin/bash
set -e
function get_next_commit() {
local LAST_COMMIT=$1
local NEXT_COMMIT=$(git log master ^$LAST_COMMIT --ancestry-path --pretty=oneline | cut -d" " -f1 | tail -n 1)
echo "$NEXT_COMMIT"
}
BENCHMARK_RESULTS_DIR="$HOME/.benchmark_results"
mkdir -p $BENCHMARK_RESULTS_DIR
CWD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
LAST_COMMIT=$(cat $BENCHMARK_RESULTS_DIR/last_commit)
NEXT_COMMIT=$(get_next_commit $LAST_COMMIT)
git checkout -q master
git pull -q --rebase
while [[ $NEXT_COMMIT != '' ]]
do
echo $NEXT_COMMIT
git checkout -q $NEXT_COMMIT
bash $CWD/benchmark-initial-sync.sh > "$BENCHMARK_RESULTS_DIR/$NEXT_COMMIT-results.txt"
echo "$NEXT_COMMIT" > "$BENCHMARK_RESULTS_DIR/last_commit"
NEXT_COMMIT=$(get_next_commit $NEXT_COMMIT)
done