github.com/m3db/m3@v1.5.0/scripts/comparator/run.sh (about) 1 #!/usr/bin/env bash 2 3 set -ex 4 export COMPARATOR=$GOPATH/src/github.com/m3db/m3/scripts/comparator 5 source $COMPARATOR/docker-setup.sh 6 7 export REVISION=$(git rev-parse HEAD) 8 9 CI=${CI:-true} 10 RUN_ONLY=${RUN_ONLY:-false} 11 12 export QUERY_FILE=$COMPARATOR/basic_queries/queries.json 13 export REGRESSION_DIR=$COMPARATOR/regression_data 14 export GRAFANA_PATH=$COMPARATOR/grafana 15 export DASHBOARD=$GRAFANA_PATH/dash.json.out 16 17 export END=${END:-$(date +%s)} 18 export START=${START:-$(( $END - 10800 ))} 19 # TODO: make this a bit less hacky in the future; e.g. take from config. 20 export COMPARATOR_WRITE="localhost:9001" 21 22 function generate_dash { 23 TEMPLATE=$GRAFANA_PATH/dashboard.tmpl 24 25 GENERATOR=$GRAFANA_PATH/generate_dash.go 26 27 go run $GENERATOR \ 28 -r=$REVISION \ 29 -q=$QUERY_FILE \ 30 -o=$DASHBOARD \ 31 -t=$TEMPLATE \ 32 -s=$START \ 33 -e=$END 34 } 35 36 if [[ "$RUN_ONLY" == "false" ]] 37 then 38 if [[ ! "$CI" == "true" ]] 39 then 40 echo "generating grafana dashboard" 41 generate_dash 42 fi 43 44 echo "setting up containers" 45 $COMPARATOR/setup.sh 46 47 echo "setting up docker" 48 setup_docker $CI 49 fi 50 51 comparator=$COMPARATOR/compare.out 52 go build -o $comparator $COMPARATOR/. 53 function defer { 54 rm $comparator 55 if [[ "$CI" == "true" ]] 56 then 57 teardown_docker $CI 58 else 59 if [[ "$RUN_ONLY" == "false" ]] 60 then 61 rm $DASHBOARD 62 fi 63 fi 64 } 65 66 if [[ "$RUN_ONLY" == "false" ]] 67 then 68 trap defer EXIT 69 fi 70 71 $comparator -input=$QUERY_FILE \ 72 -s=$START \ 73 -e=$END \ 74 -comparator=$COMPARATOR_WRITE \ 75 -regressionDir=$REGRESSION_DIR 76 77 # Run PromQL testdata tests 78 go test -v -timeout 300s -tags=compatibility -count=1 github.com/m3db/m3/src/query/test/compatibility/