mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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
 | 
						|
run uv lock --check
 | 
						|
# 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 pnpm run --filter=starlight_help check
 | 
						|
run ./tools/test-js-with-puppeteer "${forcearg[@]}"
 | 
						|
 | 
						|
printf '\n\e[32mAll OK!\e[0m\n'
 |