validate-commits
74 lines
| 1.7 KiB
| text/plain
|
TextLexer
/ scripts / validate-commits
Thomas De Schampheleire
|
r7789 | #!/bin/bash | ||
Thomas De Schampheleire
|
r7423 | # 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 | ||||
Thomas De Schampheleire
|
r8281 | revset=$1 | ||
if [ -z "$revset" ]; then | ||||
echo "Warning: no revisions specified, checking draft changes up to the current one." | ||||
revset='draft() and ancestors(.)' | ||||
fi | ||||
Thomas De Schampheleire
|
r7423 | 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 | ||||
Thomas De Schampheleire
|
r8281 | for rev in $(hg log -r "$revset" -T '{node}\n'); do | ||
Thomas De Schampheleire
|
r7423 | hg log -r "$rev" | ||
hg update "$rev" | ||||
cleanup | ||||
Mads Kiilerich
|
r8073 | python3 -m venv "$venv" | ||
Thomas De Schampheleire
|
r7423 | source "$venv/bin/activate" | ||
Mads Kiilerich
|
r8777 | pip install --upgrade "pip<24.1" "setuptools<67" | ||
Mads Kiilerich
|
r7747 | pip install -e . -r dev_requirements.txt python-ldap python-pam | ||
Thomas De Schampheleire
|
r7423 | |||
# run-all-cleanup | ||||
Thomas De Schampheleire
|
r8209 | if ! scripts/run-all-cleanup ; then | ||
echo "run-all-cleanup encountered errors!" | ||||
Thomas De Schampheleire
|
r7423 | result="NOK" | ||
else | ||||
Thomas De Schampheleire
|
r8209 | 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 | ||||
Thomas De Schampheleire
|
r7423 | 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 | ||||