do-nightly-tests-and-publish at 0.5.2

File build/test/do-nightly-tests-and-publish artifact 077e641ed0 part of check-in 0.5.2


#! /bin/bash

# Update PATH to include path to Tclkit, otherwise cross-compiles will fail
PATH="${PATH}:/home/rkeene/bin:/usr/local/bin"
export PATH

# Define build and web paths
KITCREATORDIR="/home/rkeene/devel/kitcreator"
WEBROOTDIR="/web/rkeene/devel/kitcreator/kitbuild"
export KITCREATORDIR WEBROOTDIR

cd "${KITCREATORDIR}" || exit 1

FOSSIL_CHANGE="$(fossil timeline -n 1 -t ci | grep '^[0-9:]* \[' | sed 's@^[0-9:]* \[\([0-9a-f]*\)\].*$@\1@')"
TESTNAME="fossil_${FOSSIL_CHANGE}"
export FOSSIL_CHANGE TESTNAME

if [ -d "${WEBROOTDIR}/${TESTNAME}" ]; then
	# Don't re-run the tests if nothing has changed
	exit 0
fi

cd build/test || exit 1

if [ ! -x test -o ! -x publish-tests ]; then
	echo 'Missing scripts, aborting.' >&2

	exit 1
fi

# Only run one at a time
if [ -f '__AUTO_TESTS_RUNNING__' ]; then
	exit 1
fi
touch '__AUTO_TESTS_RUNNING__'

# Clean builds
rm -rf kits

# Run tests
nice -n 20 ./test >/dev/null 2>/dev/null

# Clean old auto-generated published results
rm -rf "${WEBROOTDIR}"/svn_r*/ "${WEBROOTDIR}"/fossil_*/

# Publish New Results
./publish-tests "${TESTNAME}"

# Clean
rm -f '__AUTO_TESTS_RUNNING__'

exit 0