0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-25 11:17:50 +01:00
posthog/bin/e2e-test-runner

108 lines
3.3 KiB
Plaintext
Raw Normal View History

#!/bin/bash
set -e
SKIP_MIGRATE=false
SKIP_RECREATE_DATABASE=false
SKIP_SETUP_DEV=false
HELP_TEXT=$(cat << EOF
use --skip-all-setup to only run Cypress
use --skip-recreate-db to skip dropping and creating databases
use --skip-migrate-db to skip running DB migrations
use --skip-setup-dev to skip running django setup_dev command
EOF
)
for var in "$@"
do
if [ "$var" == "--help" ]; then
echo "$HELP_TEXT"
exit 0
fi
if [ "$var" == "-h" ]; then
echo "$HELP_TEXT"
exit 0
fi
if [ "$var" == "--skip-all-setup" ]; then
SKIP_RECREATE_DATABASE=true
SKIP_MIGRATE=true
SKIP_SETUP_DEV=true
echo "skipping all setup"
fi
if [ "$var" == "--skip-recreate-db" ]; then
SKIP_RECREATE_DATABASE=true
echo "skipping dropping and recreating databases"
fi
if [ "$var" == "--skip-migrate-db" ]; then
SKIP_MIGRATE=true
echo "skipping migrating databases"
fi
if [ "$var" == "--skip-setup-dev" ]; then
SKIP_SETUP_DEV=true
echo "skipping django setup dev command"
fi
done
export DEBUG=1
export NO_RESTART_LOOP=1
export CYPRESS_BASE_URL=http://localhost:8080
export OPT_OUT_CAPTURE=1
export SECURE_COOKIES=0
export SKIP_SERVICE_VERSION_REQUIREMENTS=1
export KAFKA_URL=kafka://kafka:9092
export CLICKHOUSE_DATABASE=posthog_test
export TEST=1 # Plugin server and kafka revert to 'default' Clickhouse database if TEST is not set
export CLICKHOUSE_SECURE=0
export E2E_TESTING=1
export SECRET_KEY=e2e_test
export EMAIL_HOST=email.test.posthog.net
export SITE_URL=http://localhost:8080
export REDIS_URL=redis://localhost/
DATABASE="posthog_e2e_test"
export PGHOST="${PGHOST:=localhost}"
export PGUSER="${PGUSER:=posthog}"
export PGPASSWORD="${PGPASSWORD:=posthog}"
export PGPORT="${PGPORT:=5432}"
export DATABASE_URL="postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:${PGPORT}/${DATABASE}"
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
recreateDatabases() {
echo "~~~~~~~~~~~~~ dropping and creating databases ~~~~~~~~~~~~~"
dropdb --if-exists $DATABASE
createdb $DATABASE
# Delete and recreate clickhouse database
echo 'DROP DATABASE if exists posthog_test' | curl 'http://localhost:8123/' --data-binary @-
echo 'create database posthog_test' | curl 'http://localhost:8123/' --data-binary @-
}
migrateDatabases() {
echo "~~~~~~~~~~~~~ migrating databases ~~~~~~~~~~~~~"
python manage.py migrate
python manage.py migrate_clickhouse
}
setupDev() {
echo "~~~~~~~~~~~~~ setting up django ~~~~~~~~~~~~~"
python manage.py setup_dev &
}
nc -z localhost 9092 || ( echo -e "\033[0;31mKafka isn't running. Please run\n\tdocker compose -f docker-compose.dev.yml up zookeeper kafka clickhouse db redis\nI'll wait while you do that.\033[0m" ; bin/check_kafka_clickhouse_up )
wget -nv -t1 --spider 'http://localhost:8123/' || ( echo -e "\033[0;31mClickhouse isn't running. Please run\n\tdocker compose -f docker-compose.dev.yml up zookeeper kafka clickhouse db redis.\nI'll wait while you do that.\033[0m" ; bin/check_kafka_clickhouse_up )
$SKIP_RECREATE_DATABASE || recreateDatabases
$SKIP_MIGRATE || migrateDatabases
$SKIP_SETUP_DEV || setupDev
# parallel block
./bin/plugin-server &
# Only start webpack if not already running
nc -vz 127.0.0.1 8234 2> /dev/null || ./bin/start-frontend &
chore: use pnpm to manage dependencies (closes #12635) (#13190) * chore: use pnpm to manage dependencies * Fix CI errors * Don't report Docker image size for external PRs * Fix pnpm-lock.yaml formatting * Fix module versions * Ignore pnpm-lock.yaml * Upgrade Cypress action for pnpm support * Set up node and pnpm before Cypress * Fix typescript issues * Include patches directory in Dockerfile * Fix Jest tests in CI * Update lockfile * Update lockfile * Clean up Dockerfile * Update pnpm-lock.yaml to reflect current package.json files * remove yarn-error.log from .gitignore * formatting * update data exploration readme * type jest.config.ts * fix @react-hook issues for jest * fix react-syntax-highlighter issues for jest * fix jest issues from query-selector-shadow-dom * fix transform ignore patterns and undo previous fixes * add missing storybook peer dependencies * fix nullish coalescing operator for storybook * reorder storybook plugins * update editor-update-tsd warning to new npm script * use legacy ssl for chromatic / node 18 compatibility * use pnpm for visual regression testing workflow * use node 16 for chromatic * add @babel/plugin-proposal-nullish-coalescing-operator as direct dependency * try fix for plugin-server * cleanup * fix comment and warning * update more comments * update playwright dockerfile * update plugin source types * conditional image size reporting * revert react-native instructions * less restrictive pnpm verions * use ref component name in line with style guide Co-authored-by: Jacob Gillespie <jacobwgillespie@gmail.com>
2022-12-12 10:28:06 +01:00
pnpm dlx cypress open --config-file cypress.e2e.config.ts &
python manage.py runserver 8080