mtcute/e2e/deno/cli.sh

90 lines
2.5 KiB
Bash
Raw Normal View History

#!/bin/bash
set -eau
method=$1
shift
case "$method" in
"start")
docker compose up -d --wait jsr
node ./init-server.js
;;
"update")
# unpublish all packages
2024-04-23 14:10:18 +03:00
if [ -d .jsr-data/gcs/modules/@mtcute ]; then
rm -rf .jsr-data/gcs/modules/@mtcute
docker compose exec jsr-db psql registry -U user -c "delete from publishing_tasks;"
docker compose exec jsr-db psql registry -U user -c "delete from package_files;"
docker compose exec jsr-db psql registry -U user -c "delete from npm_tarballs;"
docker compose exec jsr-db psql registry -U user -c "delete from package_version_dependencies;"
docker compose exec jsr-db psql registry -U user -c "delete from package_versions;"
docker compose exec jsr-db psql registry -U user -c "delete from packages;"
fi
# publish all packages
docker compose run --rm --build build all
# clear cache
2024-04-23 14:10:18 +03:00
if command -v deno &> /dev/null; then
rm -rf $(deno info --json | jq .denoDir -r)/deps
fi
if [ -f deno.lock ]; then
rm deno.lock
fi
;;
"clean")
docker compose down
rm -rf .jsr-data
;;
"stop")
docker compose down
;;
"run")
2024-04-23 14:10:18 +03:00
if [ -f .env ]; then
source .env
fi
export JSR_URL=http://localhost:4873
if [ ! -z ${DOCKER+x} ]; then
# running behind a socat proxy seems to fix some of the docker networking issues (thx kamillaova)
socat TCP-LISTEN:4873,fork,reuseaddr TCP4:jsr:80 &
socat_pid=$!
# run `deno cache` with a few retries to make sure everything is cached
for i in {1..5}; do
if deno cache tests/*.ts; then
break
fi
done
trap "kill $socat_pid" EXIT
fi
if [ $# -eq 0 ]; then
deno test -A --unstable-ffi tests/**/*.ts
else
deno test -A --unstable-ffi $@
fi
;;
"run-docker")
source .env
docker compose run --rm --build test $@
;;
2024-04-23 14:10:18 +03:00
"ci")
set -eaux
2024-04-25 15:03:03 +03:00
if [ -d .jsr-data ]; then
# clean up data from previous runs
docker compose down
sudo rm -rf .jsr-data
2024-04-25 15:03:03 +03:00
fi
2024-04-23 14:10:18 +03:00
mkdir .jsr-data
./cli.sh start
./cli.sh update
docker compose run --rm --build test
;;
*)
echo "Unknown command"
;;
esac