diff options
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r-- | .github/workflows/release.yml | 141 |
1 files changed, 61 insertions, 80 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a1a1a43..c38b8de 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,7 +7,7 @@ on: jobs: release: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 # need to manually check for a couple things # - tests passed? @@ -73,89 +73,70 @@ jobs: # previous results to compare against? [ -n "$LFS_PREV_VERSION" ] && curl -sS \ "$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/` - `status/$LFS_PREV_VERSION" \ + `status/$LFS_PREV_VERSION?per_page=100" \ | jq -re 'select(.sha != env.GITHUB_SHA) | .statuses[]' \ >> prev-results.json \ || true - # unfortunately these each have their own format - [ -e results/code-thumb.csv ] && ( \ - export PREV="$(jq -re ' - select(.context == "results / code").description - | capture("Code size is (?<result>[0-9]+)").result' \ - prev-results.json || echo 0)" - ./scripts/code.py -u results/code-thumb.csv -s | awk ' - NR==2 {printf "Code size,%d B",$2} - NR==2 && ENVIRON["PREV"]+0 != 0 { - printf " (%+.1f%%)",100*($2-ENVIRON["PREV"])/ENVIRON["PREV"]} - NR==2 {printf "\n"}' \ - >> results.csv) - [ -e results/code-thumb-readonly.csv ] && ( \ - export PREV="$(jq -re ' - select(.context == "results / code (readonly)").description - | capture("Code size is (?<result>[0-9]+)").result' \ - prev-results.json || echo 0)" - ./scripts/code.py -u results/code-thumb-readonly.csv -s | awk ' - NR==2 {printf "Code size<br/>(readonly),%d B",$2} - NR==2 && ENVIRON["PREV"]+0 != 0 { - printf " (%+.1f%%)",100*($2-ENVIRON["PREV"])/ENVIRON["PREV"]} - NR==2 {printf "\n"}' \ - >> results.csv) - [ -e results/code-thumb-threadsafe.csv ] && ( \ - export PREV="$(jq -re ' - select(.context == "results / code (threadsafe)").description - | capture("Code size is (?<result>[0-9]+)").result' \ - prev-results.json || echo 0)" - ./scripts/code.py -u results/code-thumb-threadsafe.csv -s | awk ' - NR==2 {printf "Code size<br/>(threadsafe),%d B",$2} - NR==2 && ENVIRON["PREV"]+0 != 0 { - printf " (%+.1f%%)",100*($2-ENVIRON["PREV"])/ENVIRON["PREV"]} - NR==2 {printf "\n"}' \ - >> results.csv) - [ -e results/code-thumb-migrate.csv ] && ( \ - export PREV="$(jq -re ' - select(.context == "results / code (migrate)").description - | capture("Code size is (?<result>[0-9]+)").result' \ - prev-results.json || echo 0)" - ./scripts/code.py -u results/code-thumb-migrate.csv -s | awk ' - NR==2 {printf "Code size<br/>(migrate),%d B",$2} - NR==2 && ENVIRON["PREV"]+0 != 0 { - printf " (%+.1f%%)",100*($2-ENVIRON["PREV"])/ENVIRON["PREV"]} - NR==2 {printf "\n"}' \ - >> results.csv) - [ -e results/code-thumb-error-asserts.csv ] && ( \ - export PREV="$(jq -re ' - select(.context == "results / code (error-asserts)").description - | capture("Code size is (?<result>[0-9]+)").result' \ - prev-results.json || echo 0)" - ./scripts/code.py -u results/code-thumb-error-asserts.csv -s | awk ' - NR==2 {printf "Code size<br/>(error-asserts),%d B",$2} - NR==2 && ENVIRON["PREV"]+0 != 0 { - printf " (%+.1f%%)",100*($2-ENVIRON["PREV"])/ENVIRON["PREV"]} - NR==2 {printf "\n"}' \ - >> results.csv) - [ -e results/coverage.csv ] && ( \ - export PREV="$(jq -re ' - select(.context == "results / coverage").description - | capture("Coverage is (?<result>[0-9\\.]+)").result' \ - prev-results.json || echo 0)" - ./scripts/coverage.py -u results/coverage.csv -s | awk -F '[ /%]+' ' - NR==2 {printf "Coverage,%.1f%% of %d lines",$4,$3} - NR==2 && ENVIRON["PREV"]+0 != 0 { - printf " (%+.1f%%)",$4-ENVIRON["PREV"]} - NR==2 {printf "\n"}' \ - >> results.csv) - - # transpose to GitHub table - [ -e results.csv ] || exit 0 - awk -F ',' ' - {label[NR]=$1; value[NR]=$2} - END { - for (r=1; r<=NR; r++) {printf "| %s ",label[r]}; printf "|\n"; - for (r=1; r<=NR; r++) {printf "|:--"}; printf "|\n"; - for (r=1; r<=NR; r++) {printf "| %s ",value[r]}; printf "|\n"}' \ - results.csv > results.txt - echo "RESULTS:" + # build table for GitHub + echo "<table>" >> results.txt + echo "<thead>" >> results.txt + echo "<tr>" >> results.txt + echo "<th align=left>Configuration</th>" >> results.txt + for r in Code Stack Structs Coverage + do + echo "<th align=right>$r</th>" >> results.txt + done + echo "</tr>" >> results.txt + echo "</thead>" >> results.txt + + echo "<tbody>" >> results.txt + for c in "" readonly threadsafe migrate error-asserts + do + echo "<tr>" >> results.txt + c_or_default=${c:-default} + echo "<td align=left>${c_or_default^}</td>" >> results.txt + for r in code stack structs + do + # per-config results + echo "<td align=right>" >> results.txt + [ -e results/thumb${c:+-$c}.csv ] && ( \ + export PREV="$(jq -re ' + select(.context == "'"results (thumb${c:+, $c}) / $r"'").description + | capture("(?<result>[0-9∞]+)").result' \ + prev-results.json || echo 0)" + ./scripts/summary.py results/thumb${c:+-$c}.csv -f $r -Y | awk ' + NR==2 {printf "%s B",$2} + NR==2 && ENVIRON["PREV"]+0 != 0 { + printf " (%+.1f%%)",100*($2-ENVIRON["PREV"])/ENVIRON["PREV"]} + NR==2 {printf "\n"}' \ + | sed -e 's/ /\ /g' \ + >> results.txt) + echo "</td>" >> results.txt + done + # coverage results + if [ -z $c ] + then + echo "<td rowspan=0 align=right>" >> results.txt + [ -e results/coverage.csv ] && ( \ + export PREV="$(jq -re ' + select(.context == "results / coverage").description + | capture("(?<result>[0-9\\.]+)").result' \ + prev-results.json || echo 0)" + ./scripts/coverage.py -u results/coverage.csv -Y | awk -F '[ /%]+' ' + NR==2 {printf "%.1f%% of %d lines",$4,$3} + NR==2 && ENVIRON["PREV"]+0 != 0 { + printf " (%+.1f%%)",$4-ENVIRON["PREV"]} + NR==2 {printf "\n"}' \ + | sed -e 's/ /\ /g' \ + >> results.txt) + echo "</td>" >> results.txt + fi + echo "</tr>" >> results.txt + done + echo "</tbody>" >> results.txt + echo "</table>" >> results.txt + cat results.txt # find changes from history |