3 BRANCH=${1:-development}
5 # Build the container with a known name
6 docker build --build-arg BRANCH="$BRANCH" -t bookstack:db-testing .
8 echo "Failed to build app container for testing"
12 # List of database containers to test against
26 # Pre-clean-up from prior runs
27 docker stop bs-dbtest-db
28 docker network rm bs-dbtest-net
30 # Cycle over each database image
31 for img in "${containers[@]}"; do
32 echo "Starting tests with $img..."
33 docker network create bs-dbtest-net
34 docker run -d --rm --name "bs-dbtest-db" \
35 -e MYSQL_DATABASE=bookstack-test \
36 -e MYSQL_USER=bookstack \
37 -e MYSQL_PASSWORD=bookstack \
38 -e MYSQL_ROOT_PASSWORD=password \
39 --network=bs-dbtest-net \
42 APP_RUN='docker run -it --rm --network=bs-dbtest-net -e TEST_DATABASE_URL="mysql://bookstack:bookstack@bs-dbtest-db:3306" bookstack:db-testing'
43 $APP_RUN artisan migrate --force --database=mysql_testing
44 $APP_RUN artisan db:seed --force --class=DummyContentSeeder --database=mysql_testing
45 $APP_RUN vendor/bin/phpunit
50 read -p "Stop script? [y/N] " ans
51 [[ $ans == [yY] ]] && exit 0
54 docker stop "bs-dbtest-db"
55 docker network rm bs-dbtest-net