1
1
#! /bin/bash
2
2
set -e
3
3
4
+ STACK=" ${1:- } "
5
+
4
6
DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
5
7
# remember this is running in "ci" folder..
6
8
9
+ # Some defaults for running this script outside of CI
10
+ export COMPOSE_PROJECT_NAME=" ${COMPOSE_PROJECT_NAME:- npm_local_fulltest} "
11
+ export IMAGE=" ${IMAGE:- nginx-proxy-manager} "
12
+ export BRANCH_LOWER=" ${BRANCH_LOWER:- unknown} "
13
+ export BUILD_NUMBER=" ${BUILD_NUMBER:- 0000} "
14
+
15
+ if [ " ${COMPOSE_FILE:- } " = " " ]; then
16
+ export COMPOSE_FILE=" docker/docker-compose.ci.yml"
17
+ if [ " $STACK " != " " ]; then
18
+ export COMPOSE_FILE=" ${COMPOSE_FILE} :docker/docker-compose.ci.${STACK} .yml"
19
+ fi
20
+ fi
21
+
7
22
# Colors
8
23
BLUE=' \E[1;34m'
24
+ RED=' \E[1;31m'
9
25
CYAN=' \E[1;36m'
10
26
GREEN=' \E[1;32m'
11
27
RESET=' \E[0m'
@@ -14,26 +30,15 @@ YELLOW='\E[1;33m'
14
30
export BLUE CYAN GREEN RESET YELLOW
15
31
16
32
echo -e " ${BLUE} ❯ ${CYAN} Starting fullstack cypress testing ...${RESET} "
17
-
18
- NETWORK_NAME=" ${COMPOSE_PROJECT_NAME} _default"
33
+ echo -e " ${BLUE} ❯ $( docker-compose config) ${RESET} "
19
34
20
35
# $1: container_name
21
36
get_container_ip () {
22
37
local container_name=$1
23
38
local container
24
39
local ip
25
40
container=$( docker-compose ps --all -q " ${container_name} " | tail -n1)
26
- ip=$( docker inspect -f " {{.NetworkSettings.Networks.${NETWORK_NAME} .IPAddress}}" " $container " )
27
- echo " $ip "
28
- }
29
-
30
- # $1: container_name
31
- get_container_aliases () {
32
- local container_name=$1
33
- local container
34
- local ip
35
- container=$( docker-compose ps --all -q " ${container_name} " | tail -n1)
36
- ip=$( docker inspect -f " {{.NetworkSettings.Networks.${NETWORK_NAME} .Aliases}}" " $container " )
41
+ ip=$( docker inspect --format=' {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' " $container " )
37
42
echo " $ip "
38
43
}
39
44
@@ -52,6 +57,11 @@ docker-compose up -d dnsrouter
52
57
DNSROUTER_IP=$( get_container_ip " dnsrouter" )
53
58
echo -e " ${BLUE} ❯ ${YELLOW} DNS Router IP is ${DNSROUTER_IP} "
54
59
60
+ if [ " ${DNSROUTER_IP:- } " = " " ]; then
61
+ echo -e " ${RED} ❯ ERROR: DNS Router IP is not set${RESET} "
62
+ exit 1
63
+ fi
64
+
55
65
# mount the resolver
56
66
LOCAL_RESOLVE=" $DIR /../../docker/dev/resolv.conf"
57
67
rm -rf " ${LOCAL_RESOLVE} "
@@ -68,10 +78,15 @@ bash "$DIR/../wait-healthy" "$(docker-compose ps --all -q fullstack)" 120
68
78
69
79
# Run tests
70
80
rm -rf " $DIR /../../test/results"
71
- docker-compose up cypress
81
+ docker-compose up --build cypress
72
82
73
83
# Get results
74
84
docker cp -L " $( docker-compose ps --all -q cypress) :/test/results" " $DIR /../../test/"
75
85
docker cp -L " $( docker-compose ps --all -q fullstack) :/data/logs" " $DIR /../../test/results/"
76
86
87
+ if [ " $2 " = " cleanup" ]; then
88
+ echo -e " ${BLUE} ❯ ${CYAN} Cleaning up containers ...${RESET} "
89
+ docker-compose down --remove-orphans --volumes -t 30
90
+ fi
91
+
77
92
echo -e " ${BLUE} ❯ ${GREEN} Fullstack cypress testing complete${RESET} "
0 commit comments