github.com/grafana/pyroscope@v1.18.0/tools/k6/run.sh (about) 1 #! /bin/bash 2 3 set -euo pipefail 4 5 usage() { 6 echo "Usage: $0 [-c] file" 7 echo " file File name of the test to run" 8 echo " -c Run the test in the cloud" 9 echo " -h Print help message and list all available tests" 10 } 11 12 tests() { 13 echo "Available tests:" 14 for file in tools/k6/tests/*.js; do 15 echo " $(basename "${file}")" 16 done 17 } 18 19 IS_CLOUD= 20 while getopts "hc" opt; do 21 case "${opt}" in 22 c) 23 IS_CLOUD=1 24 ;; 25 h) 26 usage 27 echo # Add a newline. 28 tests 29 exit 0 30 ;; 31 *) 32 usage 33 exit 1 34 ;; 35 esac 36 done 37 shift $((OPTIND-1)) 38 39 if [ "$#" -lt 1 ]; then 40 usage 41 exit 1 42 fi 43 44 TEST=$1 45 if [ -z "${TEST}" ]; then 46 usage 47 exit 1 48 fi 49 50 DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P) 51 source "${DIR}"/.env 52 53 if [ -n "${IS_CLOUD}" ]; then 54 k6 cloud run tools/k6/tests/"${TEST}" \ 55 -e "K6_BASE_URL=${K6_BASE_URL}" \ 56 -e "K6_READ_TOKEN=${K6_READ_TOKEN}" \ 57 -e "K6_TENANT_ID=${K6_TENANT_ID}" \ 58 -e "K6_QUERY_SERVICE_NAME=${K6_QUERY_SERVICE_NAME}" \ 59 -e "K6_QUERY_DURATIONS=${K6_QUERY_DURATIONS}" 60 else 61 K6_BASE_URL="${K6_BASE_URL}" \ 62 K6_READ_TOKEN="${K6_READ_TOKEN}" \ 63 K6_TENANT_ID="${K6_TENANT_ID}" \ 64 K6_QUERY_SERVICE_NAME="${K6_QUERY_SERVICE_NAME}" \ 65 K6_QUERY_DURATIONS="${K6_QUERY_DURATIONS}" \ 66 k6 run tools/k6/tests/"${TEST}" 67 fi