|
1 | 1 | #!/usr/bin/env bash
|
2 | 2 |
|
3 |
| -docker-compose down -t 0 &> /dev/null |
| 3 | +down=false |
| 4 | +php="8.0" |
| 5 | + |
| 6 | +while true; do |
| 7 | + case "$1" in |
| 8 | + --down ) down=true; shift ;; |
| 9 | + --php ) php=$2; shift 2;; |
| 10 | + -- ) shift; break ;; |
| 11 | + * ) break ;; |
| 12 | + esac |
| 13 | +done |
| 14 | + |
| 15 | +if $down; then |
| 16 | + docker-compose down -t 0 |
| 17 | + |
| 18 | + exit 0 |
| 19 | +fi |
| 20 | + |
| 21 | +echo "Ensuring docker is running" |
| 22 | + |
| 23 | +if ! docker info > /dev/null 2>&1; then |
| 24 | + echo "Please start docker first." |
| 25 | + exit 1 |
| 26 | +fi |
| 27 | + |
| 28 | +echo "Ensuring services are running" |
| 29 | + |
4 | 30 | docker-compose up -d
|
5 | 31 |
|
6 |
| -echo "Waiting for services to boot ..." |
| 32 | +if docker run -it --rm "registry.gitlab.com/grahamcampbell/php:$php-base" -r "\$tries = 0; while (true) { try { \$tries++; if (\$tries > 30) { throw new RuntimeException('MySQL never became available'); } sleep(1); new PDO('mysql:host=docker.for.mac.localhost;dbname=forge', 'root', '', [PDO::ATTR_TIMEOUT => 3]); break; } catch (PDOException \$e) {} }"; then |
| 33 | + echo "Running tests" |
7 | 34 |
|
8 |
| -if docker run -it --rm registry.gitlab.com/grahamcampbell/php:7.4-base -r "\$tries = 0; while (true) { try { \$tries++; if (\$tries > 30) { throw new RuntimeException('MySQL never became available'); } sleep(1); new PDO('mysql:host=docker.for.mac.localhost;dbname=forge', 'root', '', [PDO::ATTR_TIMEOUT => 3]); break; } catch (PDOException \$e) {} }"; then |
9 |
| - if docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/phpunit \ |
| 35 | + if docker run -it -w /data -v ${PWD}:/data:delegated \ |
| 36 | + --user "www-data" --entrypoint vendor/bin/phpunit \ |
10 | 37 | --env CI=1 --env DB_HOST=docker.for.mac.localhost --env DB_USERNAME=root \
|
| 38 | + --env DB_HOST=docker.for.mac.localhost --env DB_PORT=3306 \ |
| 39 | + --env DYNAMODB_ENDPOINT=docker.for.mac.localhost:8000 --env DYNAMODB_CACHE_TABLE=cache --env AWS_ACCESS_KEY_ID=dummy --env AWS_SECRET_ACCESS_KEY=dummy \ |
11 | 40 | --env REDIS_HOST=docker.for.mac.localhost --env REDIS_PORT=6379 \
|
12 | 41 | --env MEMCACHED_HOST=docker.for.mac.localhost --env MEMCACHED_PORT=11211 \
|
13 |
| - --rm registry.gitlab.com/grahamcampbell/php:7.4-base "$@"; then |
14 |
| - docker-compose down -t 0 |
| 42 | + --rm "registry.gitlab.com/grahamcampbell/php:$php-base" "$@"; then |
| 43 | + exit 0 |
15 | 44 | else
|
16 |
| - docker-compose down -t 0 |
17 | 45 | exit 1
|
18 | 46 | fi
|
19 | 47 | else
|
20 | 48 | docker-compose logs
|
21 |
| - docker-compose down -t 0 &> /dev/null |
22 | 49 | exit 1
|
23 | 50 | fi
|
0 commit comments