scripts: add script to measure percentage of commits with failed status

This is to start measuring the test flakiness and see the numbers improving once we improve and deflake flaky tests

Fixes #13167
dependabot/go_modules/go.uber.org/atomic-1.10.0
Karuppiah Natarajan 2021-07-02 17:47:40 +05:30
parent 1ad2150220
commit 2b796a0c9a
No known key found for this signature in database
GPG Key ID: A84D7F91130A6BBE
1 changed files with 27 additions and 0 deletions

View File

@ -0,0 +1,27 @@
#!/bin/bash
set -e
set -o pipefail
if [[ -z ${GITHUB_TOKEN} ]]
then
echo "Please set the \$GITHUB_TOKEN environment variable for the script to work"
exit 1
fi
temp_dir=$(mktemp -d)
trap '{ rm -rf -- "${temp_dir}"; }' EXIT
json_file="${temp_dir}/commit-and-check-data.json"
curl --fail --show-error --silent -H "Authorization: token ${GITHUB_TOKEN}" \
-X POST \
-d '{
"query": "query { repository(owner: \"etcd-io\", name: \"etcd\") { defaultBranchRef { target { ... on Commit { history(first: 100) { edges { node { ... on Commit { commitUrl statusCheckRollup { state } } } } } } } } } }"
}' \
https://api.github.com/graphql | jq . > "${json_file}"
failure_percentage=$(jq '.data.repository.defaultBranchRef.target.history.edges | reduce .[] as $item (0; if $item.node.statusCheckRollup.state == "FAILURE" then (. + 1) else . end)' "${json_file}")
echo "Commit status failure percentage is - ${failure_percentage} %"