#!/usr/bin/env bash set -e cd "$(dirname "$0")"/.. # read the options TEMP=`getopt -o f --long force -- "$@"` eval set -- "$TEMP" # extract options. while true ; do case "$1" in -f|--force) FORCEARG="--force"; shift;; --) shift; break;; esac done function run { echo '----' echo "Running $@" if ! "$@"; then printf "\n\e[31;1mFAILED\e[0m $@\n" exit 1 else echo fi } # prep run ./tools/check-provision $FORCEARG run ./tools/clean-repo # travis/static-analysis run ./tools/run-mypy # Not running check-py3 because it demands a clean Git worktree. # run ./tools/check-py3 # travis/backend run ./tools/lint --pep8 $FORCEARG run ./manage.py makemessages --locale en run PYTHONWARNINGS=ignore ./tools/check-capitalization --no-generate run PYTHONWARNINGS=ignore ./tools/check-frontend-i18n --no-generate run ./tools/test-tools run ./tools/test-backend $FORCEARG run ./tools/test-migrations # Not running SVG optimizing since it's low-churn # run ./tools/optimize-svg # Not running documentation tests since it takes 20s and only tests documentation # run ./tools/test-documentation run ./tools/test-help-documentation.py $FORCEARG run ./tools/test-api # Not running run-dev tests locally; we never have # run ./tools/test-run-dev # Not running queue worker reload tests since it's low-churn code # run ./tools/test-queue-worker-reload # travis/frontend run ./tools/test-js-with-node run ./tools/test-js-with-casper $FORCEARG printf '\n\e[32mAll OK!\e[0m\n'