mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-30 15:23:34 +00:00 
			
		
		
		
	Fix flakey CI due to full stack network determination
This commit is contained in:
		| @@ -1,11 +1,27 @@ | ||||
| #!/bin/bash | ||||
| set -e | ||||
|  | ||||
| STACK="${1:-}" | ||||
|  | ||||
| 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" | ||||
| 	if [ "$STACK" != "" ]; then | ||||
| 		export COMPOSE_FILE="${COMPOSE_FILE}:docker/docker-compose.ci.${STACK}.yml" | ||||
| 	fi | ||||
| fi | ||||
|  | ||||
| # Colors | ||||
| BLUE='\E[1;34m' | ||||
| RED='\E[1;31m' | ||||
| CYAN='\E[1;36m' | ||||
| GREEN='\E[1;32m' | ||||
| RESET='\E[0m' | ||||
| @@ -14,8 +30,7 @@ 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" | ||||
| echo -e "${BLUE}❯ $(docker-compose config)${RESET}" | ||||
|  | ||||
| # $1: container_name | ||||
| get_container_ip () { | ||||
| @@ -23,17 +38,7 @@ get_container_ip () { | ||||
| 	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") | ||||
| 	ip=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$container") | ||||
| 	echo "$ip" | ||||
| } | ||||
|  | ||||
| @@ -52,6 +57,11 @@ docker-compose up -d dnsrouter | ||||
| DNSROUTER_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 1 | ||||
| fi | ||||
|  | ||||
| # mount the resolver | ||||
| LOCAL_RESOLVE="$DIR/../../docker/dev/resolv.conf" | ||||
| rm -rf "${LOCAL_RESOLVE}" | ||||
| @@ -68,10 +78,15 @@ bash "$DIR/../wait-healthy" "$(docker-compose ps --all -q fullstack)" 120 | ||||
|  | ||||
| # Run tests | ||||
| rm -rf "$DIR/../../test/results" | ||||
| docker-compose up cypress | ||||
| 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