@@ -11,69 +11,169 @@ export DOCKER_IMAGE_TAG
11
11
SWARM_STACK_NAME=e2e_test_stack
12
12
export SWARM_STACK_NAME
13
13
14
+ install_insecure_registry () {
15
+ # Create .env and append extra variables
16
+ if [[ -f .env ]]; then
17
+ cp .env .env.bak
18
+ fi
19
+
20
+ make .env
21
+ {
22
+ # disable email verification
23
+ echo WEBSERVER_LOGIN_REGISTRATION_INVITATION_REQUIRED=0
24
+ echo WEBSERVER_LOGIN_REGISTRATION_CONFIRMATION_REQUIRED=0
25
+ # set max number of CPUs sidecar
26
+ echo SERVICES_MAX_NANO_CPUS=2000000000
27
+ # set up insecure internal registry
28
+ echo REGISTRY_AUTH=False
29
+ echo REGISTRY_SSL=False
30
+ echo REGISTRY_URL=registry:5000
31
+ # disable registry caching to ensure services are fetched
32
+ echo DIRECTOR_REGISTRY_CACHING=False
33
+ } >> .env
34
+
35
+ # prepare insecure registry access for docker engine
36
+ echo " ------------------- adding host name to the insecure registry "
37
+ if [[ -f /etc/hosts ]]; then
38
+ cp /etc/hosts .hosts.bak
39
+ fi
40
+ sudo bash -c " echo '127.0.0.1 registry' >> /etc/hosts"
41
+
42
+ echo " ------------------- adding insecure registry into docker daemon "
43
+ if [[ -f /etc/docker/daemon.json ]]; then
44
+ cp /etc/docker/daemon.json .daemon.bak
45
+ fi
46
+ sudo bash -c " echo '{\" insecure-registries\" : [\" registry:5000\" ]}' >> /etc/docker/daemon.json"
47
+
48
+ echo " ------------------ restarting daemon [takes some time]"
49
+ sudo service docker restart
50
+ }
51
+
52
+ uninstall_insecure_registry () {
53
+ echo " ------------------ reverting .env"
54
+ if [[ -f .env.bak ]]; then
55
+ mv .env.bak .env
56
+ fi
57
+
58
+ echo " ------------------ reverting /etc/hosts"
59
+ if [[ -f .hosts.bak ]]; then
60
+ sudo mv .hosts.bak /etc/hosts
61
+ fi
62
+
63
+ if [[ -f .daemon.bak ]]; then
64
+ echo " ------------------ reverting /etc/docker/daemon.json"
65
+ sudo mv .daemon.bak /etc/docker/daemon.json
66
+ echo " ------------------ restarting daemon [takes some time]"
67
+ sudo service docker restart
68
+ fi
69
+ }
70
+
71
+ setup_images () {
72
+ echo " --------------- getting simcore docker images..."
73
+ make pull-version || ( (make pull-cache || true) && make build-x tag-version)
74
+ make info-images
75
+
76
+ # configure simcore for testing with a private registry
77
+ install_insecure_registry
78
+
79
+ # start simcore and set log-level
80
+ export LOG_LEVEL=WARNING
81
+ make up-version
82
+ }
83
+
84
+ setup_environment () {
85
+
86
+ echo " --------------- installing environment ..."
87
+ /bin/bash -c ' sudo apt install -y postgresql-client'
88
+
89
+ echo " -------------- installing test framework..."
90
+ # create a python venv and activate
91
+ make .venv
92
+ # shellcheck disable=SC1091
93
+ source .venv/bin/activate
94
+
95
+ bash ci/helpers/ensure_python_pip.bash
96
+ pushd tests/e2e
97
+ make install
98
+ popd
99
+ }
100
+
101
+ setup_registry () {
102
+ # shellcheck disable=SC1091
103
+ source .venv/bin/activate
104
+ pushd tests/e2e
105
+ echo " --------------- deploying the registry..."
106
+ make registry-up
107
+ echo " --------------- waiting for all services to be up..."
108
+ make wait-for-services
109
+ echo " --------------- transfering the images to the local registry..."
110
+ make transfer-images-to-registry
111
+ popd
112
+ }
113
+
114
+ setup_database () {
115
+ # shellcheck disable=SC1091
116
+ source .venv/bin/activate
117
+ pushd tests/e2e
118
+ echo " --------------- injecting templates in postgres db..."
119
+
120
+ # Checks that pg is up and running
121
+ IMAGE_NAME=" $( docker image ls --filter ' reference=postgres*' --format " {{.Repository}}:{{.Tag}}" | tail -1) "
122
+ docker ps --filter " ancestor=$IMAGE_NAME "
123
+ docker inspect " $( docker ps --filter " ancestor=$IMAGE_NAME " -q) "
124
+
125
+ # Cleaning up volumes
126
+ docker volume prune --force
127
+
128
+ # migrates tables
129
+ make pg-db-tables
130
+
131
+ # Injects project template
132
+ make inject-templates-in-db
133
+ popd
134
+ }
135
+
14
136
install () {
15
- echo " --------------- installing psql client..."
16
- /bin/bash -c ' sudo apt install -y postgresql-client'
17
- echo " --------------- getting simcore docker images..."
18
- make pull-version || ( (make pull-cache || true) && make build-x tag-version)
19
- make info-images
20
-
21
- # configure simcore for testing with a private registry
22
- bash tests/e2e/scripts/setup_env_insecure_registry.bash
23
-
24
- # start simcore and set log-level
25
- export LOG_LEVEL=WARNING; make up-version
26
-
27
- echo " -------------- installing test framework..."
28
- # create a python venv and activate
29
- make .venv
30
- # shellcheck disable=SC1091
31
- source .venv/bin/activate
32
- bash ci/helpers/ensure_python_pip.bash
33
- pushd tests/e2e;
34
- make install
35
- echo " --------------- deploying the registry..."
36
- make registry-up
37
- echo " --------------- waiting for all services to be up..."
38
- make wait-for-services
39
- echo " --------------- transfering the images to the local registry..."
40
- make transfer-images-to-registry
41
- echo " --------------- injecting templates in postgres db..."
42
- make pg-db-tables
43
- make inject-templates-in-db
44
- popd
137
+ # # shortcut
138
+ setup_images
139
+ setup_environment
140
+ setup_registry
141
+ setup_database
45
142
}
46
143
47
144
test () {
48
- pushd tests/e2e; make test ; popd
145
+ pushd tests/e2e
146
+ make test
147
+ popd
49
148
50
149
}
51
150
52
151
recover_artifacts () {
53
- # all screenshots are in tests/e2e/screenshots if any
54
-
55
- # get docker logs.
56
- # WARNING: dumping long logs might take hours!!
57
- mkdir simcore_logs
58
- (docker service logs --timestamps --tail=300 --details simcore_webserver > simcore_logs/webserver.log 2>&1 ) || true
59
- (docker service logs --timestamps --tail=200 --details simcore_director > simcore_logs/director.log 2>&1 ) || true
60
- (docker service logs --timestamps --tail=200 --details simcore_storage > simcore_logs/storage.log 2>&1 ) || true
61
- (docker service logs --timestamps --tail=200 --details simcore_sidecar > simcore_logs/sidecar.log 2>&1 ) || true
62
- (docker service logs --timestamps --tail=200 --details simcore_catalog > simcore_logs/catalog.log 2>&1 ) || true
152
+ # all screenshots are in tests/e2e/screenshots if any
153
+
154
+ # get docker logs.
155
+ # WARNING: dumping long logs might take hours!!
156
+ mkdir simcore_logs
157
+ (docker service logs --timestamps --tail=300 --details simcore_webserver > simcore_logs/webserver.log 2>&1 ) || true
158
+ (docker service logs --timestamps --tail=200 --details simcore_director > simcore_logs/director.log 2>&1 ) || true
159
+ (docker service logs --timestamps --tail=200 --details simcore_storage > simcore_logs/storage.log 2>&1 ) || true
160
+ (docker service logs --timestamps --tail=200 --details simcore_sidecar > simcore_logs/sidecar.log 2>&1 ) || true
161
+ (docker service logs --timestamps --tail=200 --details simcore_catalog > simcore_logs/catalog.log 2>&1 ) || true
63
162
}
64
163
65
164
clean_up () {
66
- echo " --------------- listing services running..."
67
- docker service ls
68
- echo " --------------- listing images available..."
69
- docker images
70
- echo " --------------- switching off..."
71
- make leave
165
+ echo " --------------- listing services running..."
166
+ docker service ls
167
+ echo " --------------- listing images available..."
168
+ docker images
169
+ echo " --------------- switching off..."
170
+ make leave
171
+ echo " --------------- uninstalling insecure registry"
172
+ uninstall_insecure_registry
72
173
}
73
174
74
175
# Check if the function exists (bash specific)
75
- if declare -f " $1 " > /dev/null
76
- then
176
+ if declare -f " $1 " > /dev/null; then
77
177
# call arguments verbatim
78
178
" $@ "
79
179
else
0 commit comments