From cef741faa605fffb28e505fc8f915cca5c16ca6d Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Thu, 18 Feb 2021 17:24:10 -0300 Subject: Add aux/ci/report.sh --- Makefile | 1 + aux/ci/ci-build.sh | 16 +++++++++---- aux/ci/report.sh | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 4 deletions(-) create mode 100755 aux/ci/report.sh diff --git a/Makefile b/Makefile index a56c610..9c4c32a 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,7 @@ MAILING_LIST = public-inbox public: README.md TODOs.md EuAndreh.key sh aux/workflow/TODOs.sh "$(NAME_UC)" $(NAME) $(MAILING_LIST) sh aux/workflow/README.sh "$(NAME_UC)" $(NAME) + sh aux/ci/report '$(NAME)' cp EuAndreh.key public/ .PHONY: clean check diff --git a/aux/ci/ci-build.sh b/aux/ci/ci-build.sh index acbc394..1159204 100755 --- a/aux/ci/ci-build.sh +++ b/aux/ci/ci-build.sh @@ -20,20 +20,28 @@ See CI logs with: git notes --ref=refs/notes/ci-logs show $SHA git notes --ref=refs/notes/ci-data show $SHA EOF - ) +) git notes --ref=refs/notes/ci-data add -f -m "$STATUS $FILENAME" git notes --ref=refs/notes/ci-logs add -f -F "$LOGFILE" git notes append -m "$NOTE" + + cd - + if [ -f ./aux/ci/report.sh ]; then + sh aux/ci/report.sh "$PACKAGE" + rsync -avzzP public/ "/srv/http/$PACKAGE/" --delete + fi + printf "\n>>>\n>>> CI logs added as Git note.\n>>>\n>>> Run status was %s" "$STATUS" } trap finish EXIT unset GIT_DIR - CLONE="$(mktemp -d)" - git clone . "$CLONE" - cd "$CLONE" + REMOTE="$PWD" + cd "$(mktemp -d)" + git clone "$REMOTE" . git config --global user.email git@euandre.org git config --global user.name 'EuAndreh CI' + git fetch origin refs/notes/*:refs/notes/* if [ -f aux/guix/with-container.sh ]; then RUNNER='./aux/guix/with-container.sh' diff --git a/aux/ci/report.sh b/aux/ci/report.sh new file mode 100755 index 0000000..b82c061 --- /dev/null +++ b/aux/ci/report.sh @@ -0,0 +1,69 @@ +#!/bin/sh +set -eu + +PROJECT_UC="$1" + +PASS='✅' +FAIL='❌' + +mkdir -p public/ci-logs public/ci-data + +OUT="$(mktemp)" +chmod 644 "$OUT" + +git fetch origin refs/notes/*:refs/notes/* ||: + +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" > "public/ci-data/$FILENAME" + git notes --ref=refs/notes/ci-logs show "$c" > "public/ci-logs/$FILENAME" +done + +cat <> "$OUT" + + + + + + + + + +

+ CI logs for $PROJECT_UC +

+ + + +EOF + +mv "$OUT" public/ci.html -- cgit v1.2.3