From 849ccbba56f7f12f983bcbb2a6cfdd04329fe2e4 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Mon, 7 Jun 2021 21:42:08 -0300 Subject: Update files under aux/ --- aux/ci/ci-build.sh | 74 ++++++++++++++++++++++++---------------------- aux/ci/git-post-receive.sh | 10 +++---- aux/ci/git-pre-push.sh | 14 +++++---- aux/ci/report.sh | 69 +++++++++++++++++++++--------------------- 4 files changed, 86 insertions(+), 81 deletions(-) (limited to 'aux/ci') diff --git a/aux/ci/ci-build.sh b/aux/ci/ci-build.sh index 21788f4..b6769a9 100755 --- a/aux/ci/ci-build.sh +++ b/aux/ci/ci-build.sh @@ -8,43 +8,45 @@ FILENAME="$(date -Is)-$SHA.log" LOGFILE="$LOGS_DIR/$FILENAME" { - echo "Starting CI job at: $(date -Is)" - - finish() { - STATUS="$?" - printf "\n\n>>> exit status was %s\n" "$STATUS" - echo "Finishing CI job at: $(date -Is)" - cd - - NOTE=$(cat <>> exit status was %s\n" "$STATUS" + echo "Finishing CI job at: $(date -Is)" + cd - + NOTE=$(cat <>>\n>>> CI logs added as Git note.\n>>>\n>>> Run status was %s" "$STATUS" - } - trap finish EXIT - - unset GIT_DIR - 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/* - git annex get ||: - - if [ -f aux/guix/with-container.sh ]; then - RUNNER='./aux/guix/with-container.sh' - else - RUNNER='sh -c' - fi - - $RUNNER 'make clean public dev-check' - - rsync -a public/ "/srv/http/$PACKAGE/" --delete + 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 - + sh aux/ci/report.sh "$PACKAGE" + rsync -a public/ "/srv/http/$PACKAGE/" --delete + + printf "\n>>>\n>>> CI logs added as Git note.\n>>>\n>>> Run status was %s" "$STATUS" + } + trap finish EXIT + + unset GIT_DIR + 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/* + git annex get ||: + + if [ -f aux/guix/with-container.sh ]; then + RUNNER='./aux/guix/with-container.sh' + else + RUNNER='sh -c' + fi + + $RUNNER 'make clean public dev-check' } 2>&1 | tee "$LOGFILE" diff --git a/aux/ci/git-post-receive.sh b/aux/ci/git-post-receive.sh index f8986ed..ee8075f 100755 --- a/aux/ci/git-post-receive.sh +++ b/aux/ci/git-post-receive.sh @@ -2,11 +2,11 @@ set -eu for n in $(seq 0 $((GIT_PUSH_OPTION_COUNT - 1))); do - opt="$(eval "echo \$GIT_PUSH_OPTION_$n")" - if [ "$opt" = skip-ci ] || [ "$opt" = ci-skip ]; then - printf "\n'%s' option detected, not running ci-build.sh\n\n" "$opt" - exit 0 - fi + opt="$(eval "echo \$GIT_PUSH_OPTION_$n")" + if [ "$opt" = skip-ci ] || [ "$opt" = ci-skip ]; then + printf "\n'%s' option detected, not running ci-build.sh\n\n" "$opt" + exit 0 + fi done PACKAGE="$(basename "$PWD" | cut -d. -f1)" # remove .git suffix diff --git a/aux/ci/git-pre-push.sh b/aux/ci/git-pre-push.sh index 5546cb2..e73b9b8 100755 --- a/aux/ci/git-pre-push.sh +++ b/aux/ci/git-pre-push.sh @@ -1,6 +1,8 @@ #!/bin/sh set -eux +TLD="$(cat aux/tld.txt)" + PACKAGE="$(basename "$PWD")" LOGS_DIR="/opt/ci/$PACKAGE/logs" REMOTE_GIT_DIR="/srv/git/$PACKAGE.git" @@ -8,12 +10,12 @@ REMOTE_GIT_DIR="/srv/git/$PACKAGE.git" DESCRIPTION="$(mktemp)" if [ -f description ] then - cp description "$DESCRIPTION" + cp description "$DESCRIPTION" else - git config euandreh.description > "$DESCRIPTION" + git config euandreh.description > "$DESCRIPTION" fi -scp "$DESCRIPTION" "git.euandreh.xyz:$REMOTE_GIT_DIR/description" -ssh git.euandreh.xyz mkdir -p "$LOGS_DIR" -scp aux/ci/ci-build.sh "git.euandreh.xyz:$(dirname "$LOGS_DIR")/ci-build.sh" -scp aux/ci/git-post-receive.sh "git.euandreh.xyz:$REMOTE_GIT_DIR/hooks/post-receive" +scp "$DESCRIPTION" "$TLD:$REMOTE_GIT_DIR/description" +ssh "$TLD" mkdir -p "$LOGS_DIR" +scp aux/ci/ci-build.sh "$TLD:$(dirname "$LOGS_DIR")/ci-build.sh" +scp aux/ci/git-post-receive.sh "$TLD:$REMOTE_GIT_DIR/hooks/post-receive" diff --git a/aux/ci/report.sh b/aux/ci/report.sh index b82c061..65d3335 100755 --- a/aux/ci/report.sh +++ b/aux/ci/report.sh @@ -14,55 +14,56 @@ 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" + 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 -

-
    + + + +

    + CI logs for $PROJECT_UC +

    +
      EOF for f in $(find public/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)" + 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 + if [ "$STATUS" = 0 ]; then + STATUS_MARKER="$PASS" + else + STATUS_MARKER="$FAIL" + fi - cat <> "$OUT" -
    • - - $STATUS_MARKER
      $FILENAME
      -
      -
    • + cat <> "$OUT" +
    • + + $STATUS_MARKER
      $FILENAME
      +
      +
    • EOF done cat <> "$OUT" -
    - +
+ EOF -- cgit v1.2.3