aboutsummaryrefslogtreecommitdiff
path: root/aux/ci/ci-build.sh
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2021-02-08 21:44:24 -0300
committerEuAndreh <eu@euandre.org>2021-02-08 21:53:31 -0300
commitdd04e676719e18674fac0005ae77b0ebcf9d94b7 (patch)
tree81abc07a3c3abde06c0f009265119cf4383e608b /aux/ci/ci-build.sh
parenteuandreh.scm: Define packages dynamically (diff)
downloadpackage-repository-dd04e676719e18674fac0005ae77b0ebcf9d94b7.tar.gz
package-repository-dd04e676719e18674fac0005ae77b0ebcf9d94b7.tar.xz
Add aux/ default files
Diffstat (limited to 'aux/ci/ci-build.sh')
-rwxr-xr-xaux/ci/ci-build.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/aux/ci/ci-build.sh b/aux/ci/ci-build.sh
new file mode 100755
index 0000000..81ee1fd
--- /dev/null
+++ b/aux/ci/ci-build.sh
@@ -0,0 +1,53 @@
+#!/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"
+ 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"
+ git config --global user.email git@euandre.org
+ git config --global user.name 'EuAndreh CI'
+
+ if [ -f aux/guix/with-container.sh ]; then
+ RUNNER='./aux/guix/with-container.sh'
+ else
+ RUNNER='sh -c'
+ fi
+
+ if [ -f ./configure ]; then
+ COMMAND='./configure && make clean check public'
+ else
+ COMMAND='make CC=cc clean check public'
+ fi
+
+ $RUNNER "$COMMAND"
+
+ rsync -avzzP public/ "/srv/http/$PACKAGE/" --delete
+} | tee "$LOGFILE" 2>&1