mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-31 15:53:33 +00:00 
			
		
		
		
	Major update to cypress
- Updated cypress - Ground work for testing DNS certs in CI
This commit is contained in:
		
							
								
								
									
										94
									
								
								scripts/ci/fulltest-cypress
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										94
									
								
								scripts/ci/fulltest-cypress
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| #!/bin/bash | ||||
| set -e | ||||
|  | ||||
| STACK="${1:-sqlite}" | ||||
|  | ||||
| DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||||
| # remember this is running in "ci" folder.. | ||||
|  | ||||
| # Some defaults for running this script outside of CI | ||||
| export 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 | ||||
|  | ||||
| # Colors | ||||
| BLUE='\E[1;34m' | ||||
| CYAN='\E[1;36m' | ||||
| GREEN='\E[1;32m' | ||||
| RESET='\E[0m' | ||||
| YELLOW='\E[1;33m' | ||||
|  | ||||
| export BLUE CYAN GREEN RESET YELLOW | ||||
|  | ||||
| echo -e "${BLUE}❯ ${CYAN}Starting fullstack cypress testing ...${RESET}" | ||||
|  | ||||
| NETWORK_NAME="${COMPOSE_PROJECT_NAME}_default" | ||||
|  | ||||
| # $1: container_name | ||||
| get_container_ip () { | ||||
| 	local container_name=$1 | ||||
| 	local container | ||||
| 	local ip | ||||
| 	container=$(docker-compose ps --all -q "${container_name}" | tail -n1) | ||||
| 	ip=$(docker inspect -f "{{.NetworkSettings.Networks.${NETWORK_NAME}.IPAddress}}" "$container") | ||||
| 	echo "$ip" | ||||
| } | ||||
|  | ||||
| # $1: container_name | ||||
| get_container_aliases () { | ||||
| 	local container_name=$1 | ||||
| 	local container | ||||
| 	local ip | ||||
| 	container=$(docker-compose ps --all -q "${container_name}" | tail -n1) | ||||
| 	ip=$(docker inspect -f "{{.NetworkSettings.Networks.${NETWORK_NAME}.Aliases}}" "$container") | ||||
| 	echo "$ip" | ||||
| } | ||||
|  | ||||
| # Bring up a stack, in steps so we can inject IPs everywhere | ||||
| docker-compose up -d pdns pdns-db | ||||
| PDNS_IP=$(get_container_ip "pdns") | ||||
| echo -e "${BLUE}❯ ${YELLOW}PDNS IP is ${PDNS_IP}${RESET}" | ||||
|  | ||||
| # adjust the dnsrouter config | ||||
| LOCAL_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 dnsrouter | ||||
| DNSROUTER_IP=$(get_container_ip "dnsrouter") | ||||
| echo -e "${BLUE}❯ ${YELLOW}DNS Router IP is ${DNSROUTER_IP}" | ||||
|  | ||||
| # mount the resolver | ||||
| LOCAL_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 | ||||
| docker-compose pull db-mysql || true # ok to fail | ||||
| docker-compose up -d --remove-orphans --pull=never fullstack | ||||
|  | ||||
| # wait for main container to be healthy | ||||
| bash "$DIR/../wait-healthy" "$(docker-compose ps --all -q fullstack)" 120 | ||||
|  | ||||
| # Run tests | ||||
| rm -rf "$DIR/../../test/results" | ||||
| docker-compose up --build cypress | ||||
|  | ||||
| # Get results | ||||
| docker 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 30 | ||||
| fi | ||||
|  | ||||
| echo -e "${BLUE}❯ ${GREEN}Fullstack cypress testing complete${RESET}" | ||||
|  | ||||
		Reference in New Issue
	
	Block a user