##// END OF EJS Templates
scripts/validate-commits: use direct /bin/bash interpreter...
scripts/validate-commits: use direct /bin/bash interpreter Use of '#!/bin/bash' vs '#!/usr/bin/env bash' can be argued multiple ways. For example, see: https://stackoverflow.com/questions/21612980/why-is-usr-bin-env-bash-superior-to-bin-bash/21613039 It seems to be more common to use the first approach. And we don't have a specific reason to prefer the latter. Moreover, other scripts in this repo, like 'make-release' and 'whitespacecleanup.sh' use the former too.

File last commit:

r7789:37ac2ac0 default
r7789:37ac2ac0 default
Show More
validate-commits
64 lines | 1.4 KiB | text/plain | TextLexer
#!/bin/bash
# Validate the specified commits against test suite and other checks.
if [ -n "$VIRTUAL_ENV" ]; then
echo "Please run this script from outside a virtualenv."
exit 1
fi
if ! hg update --check -q .; then
echo "Working dir is not clean, please commit/revert changes first."
exit 1
fi
venv=$(mktemp -d kallithea-validatecommits-env-XXXXXX)
resultfile=$(mktemp kallithea-validatecommits-result-XXXXXX)
echo > "$resultfile"
cleanup()
{
rm -rf /tmp/kallithea-test*
rm -rf "$venv"
}
finish()
{
cleanup
# print (possibly intermediate) results
cat "$resultfile"
rm "$resultfile"
}
trap finish EXIT
for rev in $(hg log -r "$1" -T '{node}\n'); do
hg log -r "$rev"
hg update "$rev"
cleanup
virtualenv -p "$(command -v python2)" "$venv"
source "$venv/bin/activate"
pip install --upgrade pip setuptools
pip install -e . -r dev_requirements.txt python-ldap python-pam
# run-all-cleanup
scripts/run-all-cleanup
if ! hg update --check -q .; then
echo "run-all-cleanup did not give clean results!"
result="NOK"
hg diff
hg revert -a
else
result=" OK"
fi
echo "$result: $rev (run-all-cleanup)" >> "$resultfile"
# pytest
if py.test; then
result=" OK"
else
result="NOK"
fi
echo "$result: $rev (pytest)" >> "$resultfile"
deactivate
echo
done