From f6e68ae8d037119d053ebcbb144397f206eb06fe Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen.haas@lakedrops.com> Date: Wed, 11 Jan 2023 14:31:53 +0100 Subject: [PATCH] Add script for Cypress E2E test --- bin/cypress-run | 38 ++++++++++++++++++++++++++++++++++++++ bin/volume.php | 16 +++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100755 bin/cypress-run diff --git a/bin/cypress-run b/bin/cypress-run new file mode 100755 index 0000000..aaecbaa --- /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 37a0e10..74a490a 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 { -- GitLab