blob: 81ee1fd3596b078d668c75848183d4f8edc363e4 (
plain) (
tree)
|
|
#!/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
|