diff options
author | EuAndreh <eu@euandre.org> | 2021-03-05 18:15:15 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-03-06 01:27:00 -0300 |
commit | 65cf8196ea66e207c8c6f5015192eb0b34463457 (patch) | |
tree | 70789808399aa65770188043835235759d0d7217 /aux/ci/ci-build.sh | |
parent | Empty initial commit (diff) | |
download | gistatic-65cf8196ea66e207c8c6f5015192eb0b34463457.tar.gz gistatic-65cf8196ea66e207c8c6f5015192eb0b34463457.tar.xz |
Add base project skeleton files
Diffstat (limited to 'aux/ci/ci-build.sh')
-rwxr-xr-x | aux/ci/ci-build.sh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/aux/ci/ci-build.sh b/aux/ci/ci-build.sh new file mode 100755 index 0000000..1c033fe --- /dev/null +++ b/aux/ci/ci-build.sh @@ -0,0 +1,56 @@ +#!/bin/sh +set -eux + +PACKAGE="$1" +LOGS_DIR="$2" +read -r _ SHA _ # oldrev newrev refname +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 <<EOF +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/" + fi + + 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 dev-check public' + + rsync -avzzP public/ "/srv/http/$PACKAGE/" --delete +} 2>&1 | tee "$LOGFILE" |