1
#!/usr/bin/env bash
2
set -euo pipefail
3
name="machweis-report-test-${RANDOM}"
4
cleanup() { docker rm -f "$name" >/dev/null 2>&1 || true; }
5
trap cleanup EXIT
6
docker run -d --name "$name" -e MYSQL_DATABASE=machweis_test -e MYSQL_USER=machweis_test -e MYSQL_PASSWORD=local_only -e MYSQL_ROOT_PASSWORD=local_root_only -p 13306:3306 mysql:8.4 >/dev/null
7
for i in {1..60}; do
8
if docker exec "$name" mysqladmin ping -h127.0.0.1 -umachweis_test -plocal_only --silent >/dev/null 2>&1; then break; fi
9
sleep 1
10
done
11
docker exec "$name" mysqladmin ping -h127.0.0.1 -umachweis_test -plocal_only --silent >/dev/null
12
DB_HOST=127.0.0.1 DB_PORT=13306 DB_NAME=machweis_test DB_USER=machweis_test DB_PASSWORD=local_only php bin/migrate.php
13
docker exec "$name" mysql -h127.0.0.1 -umachweis_test -plocal_only machweis_test -e "DELETE FROM schema_migrations WHERE migration IN ('007_reports_audit.sql', '008_report_assets.sql', '009_asset_cleanup_runs.sql', '010_company_profiles.sql', '011_employee_invitations.sql', '012_fine_grained_permissions_audit.sql')" >/dev/null
14
DB_HOST=127.0.0.1 DB_PORT=13306 DB_NAME=machweis_test DB_USER=machweis_test DB_PASSWORD=local_only php bin/migrate.php
15
DB_HOST=127.0.0.1 DB_PORT=13306 DB_NAME=machweis_test DB_USER=machweis_test DB_PASSWORD=local_only php -d zend.assertions=1 -d assert.exception=1 tests/reports_contract.php
16
DB_HOST=127.0.0.1 DB_PORT=13306 DB_NAME=machweis_test DB_USER=machweis_test DB_PASSWORD=local_only php -d zend.assertions=1 -d assert.exception=1 tests/report_assets_contract.php
17
DB_HOST=127.0.0.1 DB_PORT=13306 DB_NAME=machweis_test DB_USER=machweis_test DB_PASSWORD=local_only php -d zend.assertions=1 -d assert.exception=1 tests/company_profile_contract.php
18
DB_HOST=127.0.0.1 DB_PORT=13306 DB_NAME=machweis_test DB_USER=machweis_test DB_PASSWORD=local_only php -d zend.assertions=1 -d assert.exception=1 tests/invitations_contract.php
19
DB_HOST=127.0.0.1 DB_PORT=13306 DB_NAME=machweis_test DB_USER=machweis_test DB_PASSWORD=local_only php -d zend.assertions=1 -d assert.exception=1 tests/permissions_contract.php
20