diff --git a/bin/cypress-run b/bin/cypress-run new file mode 100755 index 0000000000000000000000000000000000000000..aaecbaa408da5528b67bd91d6f03ddb0e6b0282c --- /dev/null +++ b/bin/cypress-run @@ -0,0 +1,38 @@ +#!/bin/bash + +set -e + +NAME=${COMPOSE_PROJECT_NAME}_cypress_e2e +ID=$(docker container ls --all -q -f name=^${NAME}$) +HOSTDIR=$(php /usr/local/bin/volume.php --none) +if [[ -n ${ID} ]]; then + echo "Ataching to existing process ..." + docker start --attach --interactive ${NAME} +else + if [[ "$DOCKER4DRUPAL_TRAEFIK_USESSL" == "1" ]]; then + SCHEMA=https + if [[ "$DOCKER4DRUPAL_TRAEFIK_PORTS" == "443" ]]; then + PORT= + else + PORT=":$DOCKER4DRUPAL_TRAEFIK_PORTS" + fi + else + SCHEMA=http + if [[ "$DOCKER4DRUPAL_TRAEFIK_PORT" == "80" ]]; then + PORT= + else + PORT=":$DOCKER4DRUPAL_TRAEFIK_PORT" + fi + fi + docker run -u 1000:$(stat -c "%g" /var/run/docker.sock) --rm --name=${NAME} \ + --network host \ + --env CYPRESS_baseUrl=${SCHEMA}://${COMPOSE_PROJECT_NAME}.${DOCKER4DRUPAL_TRAEFIK_DOMAIN}${PORT} \ + --env CYPRESS_mailhogUrl=${SCHEMA}://mailhog-${COMPOSE_PROJECT_NAME}.${DOCKER4DRUPAL_TRAEFIK_DOMAIN}${PORT} \ + --env PHP_CONTAINER=${COMPOSE_PROJECT_NAME}-php-1 \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v ${HOSTDIR}/tests/:/e2e \ + -w /e2e \ + registry.lakedrops.com/docker/cypress:latest \ + cypress run --browser firefox --project /e2e +fi +EC=$? diff --git a/bin/volume.php b/bin/volume.php index 37a0e102373d569ef6f2178fe6e19cc99cc1221f..74a490ae30310951cf9c400bb339443752553821 100644 --- a/bin/volume.php +++ b/bin/volume.php @@ -42,7 +42,21 @@ function getAllDockerMountSources() { return implode(' ', $volumes); } -if ($argc === 1 || $argv[1] !== '--all') { +function getHostSource() { + $currentDir = getcwd(); + $container = readContainerConfig(); + foreach ($container['Mounts'] as $mount) { + if (strpos($currentDir, $mount['Destination']) === 0) { + return $mount['Source']; + } + } + return 'unknown'; +} + +if ($argc === 2 && $argv[1] === '--none') { + print(getHostSource()); +} +elseif ($argc === 1 || $argv[1] !== '--all') { print(getDockerMountSource($argv)); } else {