Jeff Gaston | 210f5bc | 2021-03-11 13:06:31 -0500 | [diff] [blame] | 1 | set -e |
| 2 | set -o pipefail |
| 3 | |
| 4 | showPresubmit=false |
| 5 | while [ "$1" != "" ]; do |
| 6 | arg="$1" |
| 7 | shift |
| 8 | if [ "$arg" == "--presubmit" ]; then |
| 9 | showPresubmit=true |
| 10 | continue |
| 11 | fi |
| 12 | done |
| 13 | |
| 14 | function getFailures() { |
| 15 | if [ "$showPresubmit" == "true" ]; then |
| 16 | buildType="pending" |
| 17 | else |
| 18 | buildType="submitted" |
| 19 | fi |
| 20 | /google/data/ro/projects/android/bass --query="fail" -branch="aosp-androidx-main" -days="30" -successful="false" --build-type="$buildType" 2>&1 | tee /tmp/failure-output |
| 21 | } |
| 22 | getFailures |
| 23 | |
| 24 | function stripExtraOutput() { |
| 25 | cat /tmp/failure-output | grep -v "Branch" | grep -v "Machine Name" | grep -v "Completed At" | grep -v "Snippet" | sed 's/.*BuildID: \([0-9]*\).*/BuildID \1/g' | sed 's/.*Target: \(.*\)/Target: \1/g' | sed 's/.*---.*//' | uniq | tee /tmp/failure-output-reduced |
| 26 | } |
| 27 | stripExtraOutput |
| 28 | |
| 29 | function consolidateLines() { |
| 30 | cat /tmp/failure-output-reduced | sed 's/$/ /g' | tr -d '\n' | sed 's/BuildID/\nBuildID/g' | sed 's/BuildID \([0-9]*\) Target: \([^ ]*\) \(.*\)/\3 BuildID \1 \/ \2/g' | tee /tmp/failures |
| 31 | } |
| 32 | consolidateLines |
| 33 | |
| 34 | function sortFailures() { |
| 35 | cat /tmp/failures | sort | tee /tmp/failures-sorted |
| 36 | } |
| 37 | sortFailures |
| 38 | |
| 39 | function showMostCommonFailures() { |
| 40 | echo |
| 41 | echo Most common build failures: |
| 42 | cat /tmp/failures-sorted | sed 's/BuildID.*//' | uniq -c | sort -n | tail |
| 43 | } |
| 44 | showMostCommonFailures |