mirror of https://github.com/zulip/zulip.git
81 lines
2.3 KiB
Bash
Executable File
81 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
cd "$(dirname "$0")"/..
|
|
|
|
# read the options
|
|
TEMP=$(getopt -o "" --long skip-provision-check -- "$@")
|
|
eval set -- "$TEMP"
|
|
|
|
# extract options.
|
|
forcearg=()
|
|
while true; do
|
|
case "$1" in
|
|
--skip-provision-check)
|
|
forcearg=(--skip-provision-check)
|
|
shift
|
|
;;
|
|
--)
|
|
shift
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
function run() {
|
|
echo '----'
|
|
printf 'Running'
|
|
printf ' %q' "$@"
|
|
printf '\n'
|
|
if ! "$@"; then
|
|
printf '\n\e[31;1mFAILED\e[0m'
|
|
printf ' %q' "$@"
|
|
printf '\n'
|
|
exit 1
|
|
else
|
|
echo
|
|
fi
|
|
}
|
|
|
|
printf '\n\e[33;1m'
|
|
echo "Because test-all is very slow, we recommend running individual (sub)suites "
|
|
echo "and relying on CI to run the complete test suite for a fast edit-test cycle. See"
|
|
echo " https://zulip.readthedocs.io/en/latest/testing/testing.html#running-tests"
|
|
echo "for details on how to run just the relevant subsets of our tests."
|
|
printf '\e[0m'
|
|
echo
|
|
|
|
# prep
|
|
run ./tools/check-provision "${forcearg[@]}"
|
|
|
|
# ci/backend
|
|
run ./tools/lint --groups=backend "${forcearg[@]}"
|
|
run ./tools/test-tools
|
|
run ./tools/test-backend --include-webhooks --ban-console-output "${forcearg[@]}"
|
|
run ./tools/test-migrations
|
|
# Not running SVG optimizing since it's low-churn
|
|
# run ./tools/setup/optimize-svg
|
|
# Not running missing bot avatar detection since it's low churn
|
|
# ./tools/setup/generate_integration_bots_avatars.py --check-missing
|
|
# Not running documentation tests since it takes 20s and only tests documentation
|
|
# run ./tools/test-documentation --skip-external-links
|
|
run ./tools/test-help-documentation --skip-external-links "${forcearg[@]}"
|
|
run ./tools/test-api
|
|
# Not running requirements check locally, because slow and low-churn
|
|
# run ./tools/test-locked-requirements
|
|
# 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
|
|
|
|
# ci/frontend
|
|
run ./tools/lint --groups=frontend "${forcearg[@]}"
|
|
run ./tools/test-js-with-node
|
|
run ./tools/check-schemas
|
|
run ./manage.py makemessages --locale en
|
|
run env PYTHONWARNINGS=ignore ./tools/check-capitalization --no-generate
|
|
run env PYTHONWARNINGS=ignore ./tools/check-frontend-i18n --no-generate
|
|
run ./tools/test-js-with-puppeteer "${forcearg[@]}"
|
|
|
|
printf '\n\e[32mAll OK!\e[0m\n'
|