From 47bfd2ed8c3219e79f8974a8fc2ac9265ed91bd2 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Tue, 18 Jan 2022 11:40:47 -0300 Subject: First commit, now with a clean history --- aux/ci/report.sh | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100755 aux/ci/report.sh (limited to 'aux/ci/report.sh') diff --git a/aux/ci/report.sh b/aux/ci/report.sh new file mode 100755 index 0000000..e900e26 --- /dev/null +++ b/aux/ci/report.sh @@ -0,0 +1,109 @@ +#!/bin/sh +set -eu + +TLD="$(cat aux/tld.txt)" +. aux/lib.sh + +while getopts 'n:o:' flag; do + case "$flag" in + n) + PROJECT="$OPTARG" + ;; + o) + OUTDIR="$OPTARG" + ;; + *) + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + +assert_arg() { + if [ -z "$1" ]; then + echo "Missing $2" >&2 + exit 2 + fi +} + +assert_arg "${PROJECT:-}" '-n PROJECT' +assert_arg "${OUTDIR:-}" '-o OUTDIR' + +PASS='✅' +FAIL='❌' + +mkdir -p "$OUTDIR/ci-logs" "$OUTDIR/ci-data" + +OUT="$(mkstemp)" +chmod 644 "$OUT" + +for c in $(git notes list | cut -d\ -f2); do + DATA="$(git notes --ref=refs/notes/ci-data show "$c")" + FILENAME="$(echo "$DATA" | cut -d\ -f2)" + echo "$DATA" > "$OUTDIR/ci-data/$FILENAME" + git notes --ref=refs/notes/ci-logs show "$c" \ + > "$OUTDIR/ci-logs/$FILENAME" +done + +{ + cat < + + + + + + + $PROJECT - CI logs + +EOF + + cat aux/workflow/style.css + + cat < + pre { + display: inline; + } + ol { + list-style-type: disc; + } + + + +
+

+ CI logs for + $PROJECT +

+
    +EOF +} > "$OUT" + +for f in $(find "$OUTDIR/ci-data/" -type f | LANG=C.UTF-8 sort -r); do + DATA="$(cat "$f")" + STATUS="$(echo "$DATA" | cut -d\ -f1)" + FILENAME="$(echo "$DATA" | cut -d\ -f2)" + + if [ "$STATUS" = 0 ]; then + STATUS_MARKER="$PASS" + else + STATUS_MARKER="$FAIL" + fi + + cat <> "$OUT" +
  1. + $STATUS_MARKER
    $FILENAME
    +
  2. +EOF +done + +cat <> "$OUT" +
+
+ + +EOF + +mv "$OUT" "$OUTDIR/ci.html" -- cgit v1.2.3