github.com/redhat-appstudio/e2e-tests@v0.0.0-20230619105049-9a422b2094d7/tests/load-tests/ci-scripts/load-test.sh (about)

     1  #!/bin/bash
     2  
     3  set -o nounset
     4  set -o errexit
     5  set -o pipefail
     6  
     7  # shellcheck disable=SC1090
     8  source "/usr/local/ci-secrets/redhat-appstudio-load-test/load-test-scenario.${1:-concurrent}"
     9  
    10  pushd "${2:-./tests/load-tests}"
    11  
    12  export QUAY_E2E_ORGANIZATION MY_GITHUB_ORG GITHUB_TOKEN
    13  QUAY_E2E_ORGANIZATION=$(cat /usr/local/ci-secrets/redhat-appstudio-load-test/quay-org)
    14  MY_GITHUB_ORG=$(cat /usr/local/ci-secrets/redhat-appstudio-load-test/github-org)
    15  
    16  rate_limits_csv=./gh-rate-limits-remaining.csv
    17  
    18  echo "Starting a watch for GH rate limits remainig"
    19  IFS="," read -ra kvs <<<"$(cat /usr/local/ci-secrets/redhat-appstudio-load-test/github_accounts)"
    20  echo -n "Time" >"$rate_limits_csv"
    21  for kv in "${kvs[@]}"; do
    22      IFS=":" read -ra name_token <<<"$kv"
    23      echo -n ";${name_token[0]}" >>"$rate_limits_csv"
    24  done
    25  echo >>"$rate_limits_csv"
    26  
    27  while true; do
    28      timestamp=$(printf "%s" "$(date -u +'%FT%T')")
    29      echo -n "$timestamp" >>"$rate_limits_csv"
    30      for kv in "${kvs[@]}"; do
    31          IFS=":" read -ra name_token <<<"$kv"
    32          rate=$(curl -s -H "Accept: application/vnd.github+json" -H "Authorization: token ${name_token[1]}" -H "X-GitHub-Api-Version: 2022-11-28" 'https://api.github.com/rate_limit' | jq -rc '(.rate.remaining|tostring)')
    33          echo -n ";$rate" >>"$rate_limits_csv"
    34      done
    35      echo >>"$rate_limits_csv"
    36      sleep 10s
    37  done &
    38  
    39  rate_limit_exit=$!
    40  kill_rate_limits() {
    41      echo "Stopping the watch for GH rate limits remainig"
    42      kill $rate_limit_exit
    43  }
    44  trap kill_rate_limits EXIT
    45  
    46  ./run.sh
    47  
    48  popd