| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | #!/bin/bashset -eSTACK="${1:-sqlite}"DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"# remember this is running in "ci" folder..# Some defaults for running this script outside of CIexport COMPOSE_PROJECT_NAME="${COMPOSE_PROJECT_NAME:-npm_local_fulltest}"export IMAGE="${IMAGE:-nginx-proxy-manager}"export BRANCH_LOWER="${BRANCH_LOWER:-unknown}"export BUILD_NUMBER="${BUILD_NUMBER:-0000}"if [ "${COMPOSE_FILE:-}" = "" ]; then	export COMPOSE_FILE="docker/docker-compose.ci.yml:docker/docker-compose.ci.${STACK}.yml"fi# ColorsBLUE='\E[1;34m'RED='\E[1;31m'CYAN='\E[1;36m'GREEN='\E[1;32m'RESET='\E[0m'YELLOW='\E[1;33m'export BLUE CYAN GREEN RESET YELLOWecho -e "${BLUE}❯ ${CYAN}Starting fullstack cypress testing ...${RESET}"echo -e "${BLUE}❯ $(docker-compose config)${RESET}"# $1: container_nameget_container_ip () {	local container_name=$1	local container	local ip	container=$(docker-compose ps --all -q "${container_name}" | tail -n1)	ip=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$container")	echo "$ip"}# Bring up a stack, in steps so we can inject IPs everywheredocker-compose up -d pdns pdns-dbPDNS_IP=$(get_container_ip "pdns")echo -e "${BLUE}❯ ${YELLOW}PDNS IP is ${PDNS_IP}${RESET}"# adjust the dnsrouter configLOCAL_DNSROUTER_CONFIG="$DIR/../../docker/dev/dnsrouter-config.json"rm -rf "$LOCAL_DNSROUTER_CONFIG.tmp"# IMPORTANT: changes to dnsrouter-config.json will affect this line:jq --arg a "$PDNS_IP" '.servers[0].upstreams[1].upstream = $a' "$LOCAL_DNSROUTER_CONFIG" > "$LOCAL_DNSROUTER_CONFIG.tmp"docker-compose up -d dnsrouterDNSROUTER_IP=$(get_container_ip "dnsrouter")echo -e "${BLUE}❯ ${YELLOW}DNS Router IP is ${DNSROUTER_IP}"if [ "${DNSROUTER_IP:-}" = "" ]; then	echo -e "${RED}❯ ERROR: DNS Router IP is not set${RESET}"	exit 1fi# mount the resolverLOCAL_RESOLVE="$DIR/../../docker/dev/resolv.conf"rm -rf "${LOCAL_RESOLVE}"printf "nameserver %s\noptions ndots:0" "${DNSROUTER_IP}" > "${LOCAL_RESOLVE}"# bring up all remaining containers, except cypress!docker-compose up -d --remove-orphans stepca squiddocker-compose pull db-mysql || true # ok to faildocker-compose up -d --remove-orphans --pull=never fullstack# wait for main container to be healthybash "$DIR/../wait-healthy" "$(docker-compose ps --all -q fullstack)" 120# Run testsrm -rf "$DIR/../../test/results"docker-compose up --build cypress# Get resultsdocker cp -L "$(docker-compose ps --all -q cypress):/test/results" "$DIR/../../test/"docker cp -L "$(docker-compose ps --all -q fullstack):/data/logs" "$DIR/../../test/results/"if [ "$2" = "cleanup" ]; then	echo -e "${BLUE}❯ ${CYAN}Cleaning up containers ...${RESET}"	docker-compose down --remove-orphans --volumes -t 30fiecho -e "${BLUE}❯ ${GREEN}Fullstack cypress testing complete${RESET}"
 |