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