Skip to content

Commit 8bada80

Browse files
authored
update: handle graceful shutdown in Node container (#2337)
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 7cbc96a commit 8bada80

File tree

16 files changed

+74
-48
lines changed

16 files changed

+74
-48
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ StandaloneC*/generate_config
2424
StandaloneF*/generate_config
2525
StandaloneE*/generate_config
2626
videos
27+
Base/configs
2728

2829
# Created by https://www.gitignore.io/api/virtualenv
2930

Diff for: Base/Dockerfile

+3-2
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ RUN if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
127127
#======================================
128128
# Add Grid check script
129129
#======================================
130-
COPY --chown="${SEL_UID}:${SEL_GID}" check-grid.sh entry_point.sh /opt/bin/
130+
COPY --chown="${SEL_UID}:${SEL_GID}" check-grid.sh entry_point.sh configs/node/nodeGridUrl.sh configs/node/nodePreStop.sh /opt/bin/
131131

132132
#======================================
133133
# Add Supervisor configuration file
@@ -149,6 +149,7 @@ ENV SE_BIND_HOST=false \
149149
SE_REJECT_UNSUPPORTED_CAPS=false \
150150
SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED=true \
151151
SE_OTEL_TRACES_EXPORTER="otlp" \
152-
SE_SUPERVISORD_LOG_LEVEL="info"
152+
SE_SUPERVISORD_LOG_LEVEL="info" \
153+
SE_OPT_BIN="/opt/bin"
153154

154155
CMD ["/opt/bin/entry_point.sh"]

Diff for: Base/entry_point.sh

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/usr/bin/env bash
22

3+
NODE_CONFIG_DIRECTORY=${NODE_CONFIG_DIRECTORY:-$SE_OPT_BIN}
34
#==============================================
45
# OpenShift or non-sudo environments support
56
# https://docs.openshift.com/container-platform/3.11/creating_images/guidelines.html#openshift-specific-guidelines
@@ -17,6 +18,10 @@ SUPERVISOR_PID=$!
1718

1819
function shutdown {
1920
echo "Trapped SIGTERM/SIGINT/x so shutting down supervisord..."
21+
if [ "${SE_NODE_GRACEFUL_SHUTDOWN}" = "true" ]; then
22+
echo "Waiting for Selenium Node to shutdown gracefully..."
23+
bash ${NODE_CONFIG_DIRECTORY}/nodePreStop.sh
24+
fi
2025
kill -s SIGTERM ${SUPERVISOR_PID}
2126
wait ${SUPERVISOR_PID}
2227
echo "Shutdown complete"

Diff for: Makefile

+13-8
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,11 @@ build: all
6868
ci: build test
6969

7070
base:
71+
rm -rf ./Base/configs/node && mkdir -p ./Base/configs/node && cp -r ./charts/selenium-grid/configs/node ./Base/configs
7172
cd ./Base && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg VERSION=$(BASE_VERSION) --build-arg RELEASE=$(BASE_RELEASE) --build-arg AUTHORS=$(AUTHORS) -t $(NAME)/base:$(TAG_VERSION) .
7273

7374
base_nightly:
74-
cd ./Base && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --build-arg VERSION=$(BASE_VERSION_NIGHTLY) --build-arg RELEASE=$(BASE_RELEASE_NIGHTLY) --build-arg AUTHORS=$(AUTHORS) -t $(NAME)/base:$(TAG_VERSION) .
75+
BASE_VERSION=$(BASE_VERSION_NIGHTLY) BASE_RELEASE=$(BASE_RELEASE_NIGHTLY) make base
7576

7677
hub: base
7778
cd ./Hub && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/hub:$(TAG_VERSION) .
@@ -557,7 +558,8 @@ test_parallel: hub chrome firefox edge chromium
557558
cd ./tests || true ; \
558559
echo TAG=$(TAG_VERSION) > .env ; \
559560
echo TEST_DRAIN_AFTER_SESSION_COUNT=$(or $(TEST_DRAIN_AFTER_SESSION_COUNT), 0) >> .env ; \
560-
echo TEST_PARALLEL_HARDENING=$(or $(TEST_PARALLEL_HARDENING), "false") >> .env ; \
561+
echo TEST_PARALLEL_HARDENING=$(or $(TEST_PARALLEL_HARDENING), "true") >> .env ; \
562+
echo TEST_PARALLEL_COUNT=$(or $(TEST_PARALLEL_COUNT), 5) >> .env ; \
561563
echo LOG_LEVEL=$(or $(LOG_LEVEL), "INFO") >> .env ; \
562564
echo REQUEST_TIMEOUT=$(or $(REQUEST_TIMEOUT), 300) >> .env ; \
563565
echo NODE=$$node >> .env ; \
@@ -569,11 +571,14 @@ test_parallel: hub chrome firefox edge chromium
569571
echo NODE_CHROME=chromium >> .env ; \
570572
fi; \
571573
echo TEST_PLATFORMS=$(PLATFORMS) >> .env ; \
572-
DOCKER_DEFAULT_PLATFORM=$(PLATFORMS) docker compose --profile $(PLATFORMS) -f docker-compose-v3-test-parallel.yml up --no-log-prefix --exit-code-from tests ; \
573-
done
574+
export $$(cat .env | xargs) ; \
575+
DOCKER_DEFAULT_PLATFORM=$(PLATFORMS) docker compose --profile $(PLATFORMS) -f docker-compose-v3-test-parallel.yml up -d --no-log-prefix ; \
576+
RUN_IN_DOCKER_COMPOSE=true bash ./bootstrap.sh $$node ; \
577+
done ; \
578+
docker compose -f docker-compose-v3-test-parallel.yml down
574579

575580
test_video_dynamic_name:
576-
VIDEO_FILE_NAME=auto TEST_DELAY_AFTER_TEST=10 \
581+
VIDEO_FILE_NAME=auto TEST_DELAY_AFTER_TEST=0 \
577582
make test_video
578583

579584
# This should run on its own CI job. There is no need to combine it with the other tests.
@@ -636,7 +641,7 @@ test_node_relay: hub node_base standalone_firefox
636641
echo ANDROID_BASED_IMAGE=$(or $(ANDROID_BASED_IMAGE),docker-android) >> .env ; \
637642
echo ANDROID_BASED_TAG=$(or $(ANDROID_BASED_TAG),emulator_14.0) >> .env ; \
638643
echo ANDROID_PLATFORM_API=$(or $(ANDROID_PLATFORM_API),14) >> .env ; \
639-
echo TEST_DELAY_AFTER_TEST=$(or $(TEST_DELAY_AFTER_TEST), 15) >> .env ; \
644+
echo TEST_DELAY_AFTER_TEST=$(or $(TEST_DELAY_AFTER_TEST), 0) >> .env ; \
640645
echo NODE=$$node >> .env ; \
641646
echo TEST_NODE_RELAY=$$node >> .env ; \
642647
echo UID=$$(id -u) >> .env ; \
@@ -688,7 +693,7 @@ test_node_docker: hub standalone_docker standalone_chrome standalone_firefox sta
688693
echo LOG_LEVEL=$(or $(LOG_LEVEL), "INFO") >> .env ; \
689694
echo REQUEST_TIMEOUT=$(or $(REQUEST_TIMEOUT), 300) >> .env ; \
690695
echo SELENIUM_ENABLE_MANAGED_DOWNLOADS=$(or $(SELENIUM_ENABLE_MANAGED_DOWNLOADS), "false") >> .env ; \
691-
echo TEST_DELAY_AFTER_TEST=$(or $(TEST_DELAY_AFTER_TEST), 5) >> .env ; \
696+
echo TEST_DELAY_AFTER_TEST=$(or $(TEST_DELAY_AFTER_TEST), 0) >> .env ; \
692697
echo NODE=$$node >> .env ; \
693698
echo UID=$$(id -u) >> .env ; \
694699
echo BINDING_VERSION=$(BINDING_VERSION) >> .env ; \
@@ -765,7 +770,7 @@ chart_test_template:
765770
./tests/charts/bootstrap.sh
766771

767772
chart_test_autoscaling_disabled:
768-
PLATFORMS=$(PLATFORMS) TEST_CHROMIUM=true RELEASE_NAME=selenium SELENIUM_GRID_AUTOSCALING=false TEST_DELAY_AFTER_TEST=15 CHART_ENABLE_TRACING=true \
773+
PLATFORMS=$(PLATFORMS) TEST_CHROMIUM=true RELEASE_NAME=selenium SELENIUM_GRID_AUTOSCALING=false TEST_DELAY_AFTER_TEST=0 CHART_ENABLE_TRACING=true \
769774
SECURE_INGRESS_ONLY_GENERATE=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_HOST=$$(hostname -i) SELENIUM_GRID_PORT=443 \
770775
VERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) NAMESPACE=$(NAMESPACE) BINDING_VERSION=$(BINDING_VERSION) \
771776
./tests/charts/make/chart_test.sh NoAutoscaling

Diff for: NodeBase/selenium.conf

+1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ stderr_capture_maxbytes=50MB
5757
priority=15
5858
command=bash -c "/opt/bin/start-selenium-node.sh; EXIT_CODE=$?; kill -s SIGINT `cat /var/run/supervisor/supervisord.pid`; exit $EXIT_CODE"
5959
stopasgroup = true
60+
killasgroup=true
6061
autostart=true
6162
autorestart=false
6263
startsecs=0

Diff for: NodeChromium/Dockerfile

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ LABEL authors=${AUTHORS}
77
USER root
88

99
# Install Chromium
10-
RUN apt-get update -qqy \
11-
&& apt-get install -y software-properties-common \
12-
&& add-apt-repository ppa:xtradeb/apps \
10+
RUN echo "deb http://deb.debian.org/debian/ sid main" >> /etc/apt/sources.list \
11+
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131 \
12+
&& apt-get update -qqy \
1313
&& apt-get -qqy install chromium chromium-l10n \
1414
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
1515

Diff for: Video/supervisord.conf

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ minprocs=200 ; (min. avail process descriptors;
1414
[program:video-recording]
1515
priority=0
1616
command=/opt/bin/video.sh
17+
stopasgroup = true
18+
killasgroup=true
1719
autostart=true
20+
startsecs=0
1821
autorestart=true
19-
stopsignal=INT
2022

2123
;Logs (all activity redirected to stdout so it can be seen through "docker logs"
2224
redirect_stderr=true
@@ -28,7 +30,6 @@ priority=5
2830
command=python3 /opt/bin/video_ready.py
2931
autostart=true
3032
autorestart=true
31-
stopsignal=INT
3233

3334
;Logs (all activity redirected to stdout so it can be seen through "docker logs"
3435
redirect_stderr=true
@@ -40,7 +41,6 @@ priority=10
4041
command=bash -c "if [ ${SE_VIDEO_INTERNAL_UPLOAD} = "true" ]; then /opt/bin/upload.sh; fi"
4142
autostart=%(ENV_SE_VIDEO_INTERNAL_UPLOAD)s
4243
autorestart=%(ENV_SE_VIDEO_INTERNAL_UPLOAD)s
43-
stopsignal=INT
4444

4545
;Logs (all activity redirected to stdout so it can be seen through "docker logs"
4646
redirect_stderr=true

Diff for: charts/selenium-grid/configs/distributor/distributorProbe.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ max_time=3
44
retry_time=3
55
probe_name="Probe.${1:-"Liveness"}"
66
ts_format=${SE_LOG_TIMESTAMP_FORMAT:-"+%T.%3N"}
7-
ROUTER_CONFIG_DIRECTORY=${ROUTER_CONFIG_DIRECTORY:-"/opt/selenium"}
7+
ROUTER_CONFIG_DIRECTORY=${ROUTER_CONFIG_DIRECTORY:-$SE_OPT_BIN}
88

99
GRID_GRAPHQL_URL=$(bash ${ROUTER_CONFIG_DIRECTORY}/routerGraphQLUrl.sh)
1010

Diff for: charts/selenium-grid/configs/node/nodeGridUrl.sh

+8-7
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22

33
max_time=3
44

5+
if [ -n "${SE_ROUTER_USERNAME}" ] && [ -n "${SE_ROUTER_PASSWORD}" ]; then
6+
BASIC_AUTH="${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}@"
7+
fi
8+
if [ "${SE_SUB_PATH}" = "/" ]; then
9+
SE_SUB_PATH=""
10+
fi
11+
512
if [ -z "${SE_HUB_HOST:-$SE_ROUTER_HOST}" ] || [ -z "${SE_HUB_PORT:-$SE_ROUTER_PORT}" ]; then
613
grid_url=""
714
else
8-
if [ -n "${SE_ROUTER_USERNAME}" ] && [ -n "${SE_ROUTER_PASSWORD}" ]; then
9-
BASIC_AUTH="${SE_ROUTER_USERNAME}:${SE_ROUTER_PASSWORD}@"
10-
fi
11-
if [ "${SE_SUB_PATH}" = "/" ]; then
12-
SE_SUB_PATH=""
13-
fi
1415
grid_url=${SE_SERVER_PROTOCOL}://${BASIC_AUTH}${SE_HUB_HOST:-$SE_ROUTER_HOST}:${SE_HUB_PORT:-$SE_ROUTER_PORT}${SE_SUB_PATH}
1516
fi
1617

@@ -19,7 +20,7 @@ if [ -z "${grid_url}" ]; then
1920
fi
2021

2122
if [ -z "${grid_url}" ]; then
22-
return 0
23+
grid_url="${SE_SERVER_PROTOCOL}://${BASIC_AUTH}127.0.0.1:4444${SE_SUB_PATH}" # For standalone mode
2324
fi
2425

2526
grid_url_checks=$(curl --noproxy "*" -m ${max_time} -s -k -o /dev/null -w "%{http_code}" ${grid_url})

Diff for: charts/selenium-grid/configs/node/nodePreStop.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#!/bin/bash
22

33
probe_name="lifecycle.${1:-"preStop"}"
4-
NODE_CONFIG_DIRECTORY=${NODE_CONFIG_DIRECTORY:-"/opt/selenium"}
4+
SE_NODE_PORT=${SE_NODE_PORT:-"5555"}
5+
NODE_CONFIG_DIRECTORY=${NODE_CONFIG_DIRECTORY:-$SE_OPT_BIN}
56

67
max_time=3
78
retry_time=5

Diff for: charts/selenium-grid/configs/node/nodeProbe.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
max_time=3
44
probe_name="Probe.${1:-"Startup"}"
5-
NODE_CONFIG_DIRECTORY=${NODE_CONFIG_DIRECTORY:-"/opt/selenium"}
5+
SE_NODE_PORT=${SE_NODE_PORT:-"5555"}
6+
NODE_CONFIG_DIRECTORY=${NODE_CONFIG_DIRECTORY:-$SE_OPT_BIN}
67

78
ID=$(echo $RANDOM)
89
tmp_node_file="/tmp/nodeProbe${ID}"

Diff for: charts/selenium-grid/configs/router/routerProbe.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ max_time=3
44
retry_time=3
55
probe_name="Probe.${1:-"Liveness"}"
66
ts_format=${SE_LOG_TIMESTAMP_FORMAT:-"+%T.%3N"}
7-
ROUTER_CONFIG_DIRECTORY=${ROUTER_CONFIG_DIRECTORY:-"/opt/selenium"}
7+
ROUTER_CONFIG_DIRECTORY=${ROUTER_CONFIG_DIRECTORY:-$SE_OPT_BIN}
88

99
GRID_GRAPHQL_URL=$(bash ${ROUTER_CONFIG_DIRECTORY}/routerGraphQLUrl.sh)
1010

Diff for: charts/selenium-grid/values.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ distributorConfigMap:
160160
# Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)
161161
extraScriptsImportFrom: "configs/distributor/**"
162162
# Directory where the extra scripts are mounted to
163-
extraScriptsDirectory: "/opt/selenium"
163+
extraScriptsDirectory: "/opt/bin"
164164
extraScripts:
165165
distributorProbe.sh: ""
166166
# Name of volume mount is used to mount scripts in the ConfigMap
@@ -175,7 +175,7 @@ routerConfigMap:
175175
# Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)
176176
extraScriptsImportFrom: "configs/router/**"
177177
# Directory where the extra scripts are mounted to
178-
extraScriptsDirectory: "/opt/selenium"
178+
extraScriptsDirectory: "/opt/bin"
179179
extraScripts:
180180
routerGraphQLUrl.sh: ""
181181
routerProbe.sh: ""
@@ -192,7 +192,7 @@ nodeConfigMap:
192192
# Directory where the extra scripts are imported to ConfigMap by default (if given a relative path, it should be in chart's directory)
193193
extraScriptsImportFrom: "configs/node/**"
194194
# Directory where the extra scripts are mounted to
195-
extraScriptsDirectory: "/opt/selenium"
195+
extraScriptsDirectory: "/opt/bin"
196196
extraScripts:
197197
nodeGridUrl.sh: ""
198198
nodePreStop.sh: ""
@@ -695,7 +695,7 @@ autoscaling:
695695
deregisterLifecycle:
696696
# preStop:
697697
# exec:
698-
# command: [ "bash", "-c", "/opt/selenium/nodePreStop.sh" ]
698+
# command: [ "bash", "-c", "/opt/bin/nodePreStop.sh" ]
699699

700700
# Configuration for chrome nodes
701701
chromeNode:

Diff for: tests/SeleniumTests/__init__.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
SELENIUM_ENABLE_MANAGED_DOWNLOADS = os.environ.get('SELENIUM_ENABLE_MANAGED_DOWNLOADS', 'true').lower() == 'true'
2121
WEB_DRIVER_WAIT_TIMEOUT = int(os.environ.get('WEB_DRIVER_WAIT_TIMEOUT', 60))
2222
TEST_PARALLEL_HARDENING = os.environ.get('TEST_PARALLEL_HARDENING', 'false').lower() == 'true'
23+
TEST_PARALLEL_COUNT = int(os.environ.get('TEST_PARALLEL_COUNT', 5))
2324
TEST_DELAY_AFTER_TEST = int(os.environ.get('TEST_DELAY_AFTER_TEST', 0))
2425
TEST_NODE_RELAY = os.environ.get('TEST_NODE_RELAY', 'false')
2526
TEST_ANDROID_PLATFORM_API = os.environ.get('ANDROID_PLATFORM_API')
@@ -256,7 +257,7 @@ def test_parallel_autoscaling(self):
256257
if not TEST_PARALLEL_HARDENING:
257258
runner.run(platform.add_test_based_platform(1))
258259
else:
259-
runner.run(platform.add_test_based_platform(9))
260+
runner.run(platform.add_test_based_platform(TEST_PARALLEL_COUNT))
260261

261262
class JobAutoscalingTests(unittest.TestCase):
262263
def test_parallel_autoscaling(self):
@@ -265,7 +266,7 @@ def test_parallel_autoscaling(self):
265266
if not TEST_PARALLEL_HARDENING:
266267
runner.run(platform.add_test_based_platform(1))
267268
else:
268-
runner.run(platform.add_test_based_platform(9))
269+
runner.run(platform.add_test_based_platform(TEST_PARALLEL_COUNT))
269270

270271
class TestPlatform:
271272
def add_test_based_platform(self, repeat):

Diff for: tests/charts/make/chart_test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ export HUB_CHECKS_INTERVAL=${HUB_CHECKS_INTERVAL}
327327
export HUB_CHECKS_MAX_ATTEMPTS=${HUB_CHECKS_MAX_ATTEMPTS}
328328
export WEB_DRIVER_WAIT_TIMEOUT=${WEB_DRIVER_WAIT_TIMEOUT}
329329
export SELENIUM_GRID_TEST_HEADLESS=${SELENIUM_GRID_TEST_HEADLESS:-"false"}
330-
export TEST_DELAY_AFTER_TEST=${TEST_DELAY_AFTER_TEST:-"10"}
330+
export TEST_DELAY_AFTER_TEST=${TEST_DELAY_AFTER_TEST:-"0"}
331331
export TEST_PLATFORMS=${TEST_PLATFORMS}
332332
if [ "${MATRIX_BROWSER}" = "NoAutoscaling" ]; then
333333
./tests/bootstrap.sh NodeFirefox

Diff for: tests/docker-compose-v3-test-parallel.yml

+23-14
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ services:
2424
- SE_BROWSER_ARGS_INCOGNITO=--incognito --incognito
2525
- SE_LOG_LEVEL=${LOG_LEVEL}
2626
- SE_SUPERVISORD_LOG_LEVEL=error
27+
- SE_NODE_GRACEFUL_SHUTDOWN=true
28+
- SE_DRAIN_AFTER_SESSION_COUNT=1
29+
restart: always
2730

2831
firefox:
2932
profiles:
@@ -45,6 +48,9 @@ services:
4548
- SE_NODE_ENABLE_MANAGED_DOWNLOADS=true
4649
- SE_LOG_LEVEL=${LOG_LEVEL}
4750
- SE_SUPERVISORD_LOG_LEVEL=error
51+
- SE_NODE_GRACEFUL_SHUTDOWN=true
52+
- SE_DRAIN_AFTER_SESSION_COUNT=3
53+
restart: always
4854

4955
edge:
5056
profiles:
@@ -65,6 +71,9 @@ services:
6571
- SE_NODE_ENABLE_MANAGED_DOWNLOADS=true
6672
- SE_LOG_LEVEL=${LOG_LEVEL}
6773
- SE_SUPERVISORD_LOG_LEVEL=error
74+
- SE_NODE_GRACEFUL_SHUTDOWN=true
75+
- SE_DRAIN_AFTER_SESSION_COUNT=2
76+
restart: always
6877

6978
selenium-hub:
7079
image: selenium/hub:${TAG}
@@ -79,17 +88,17 @@ services:
7988
- SE_SESSION_REQUEST_TIMEOUT=${REQUEST_TIMEOUT}
8089
- SE_SUPERVISORD_LOG_LEVEL=error
8190

82-
tests:
83-
image: docker-selenium-tests:latest
84-
build:
85-
context: ./
86-
dockerfile: ./Dockerfile
87-
depends_on:
88-
- selenium-hub
89-
environment:
90-
- RUN_IN_DOCKER_COMPOSE=true
91-
- SELENIUM_GRID_HOST=selenium-hub
92-
- TEST_PARALLEL_HARDENING=${TEST_PARALLEL_HARDENING}
93-
- BINDING_VERSION=${BINDING_VERSION}
94-
- TEST_PLATFORMS=${PLATFORMS}
95-
command: ["/bin/bash", "-c", "./bootstrap.sh ${NODE}"]
91+
# tests:
92+
# image: docker-selenium-tests:latest
93+
# build:
94+
# context: ./
95+
# dockerfile: ./Dockerfile
96+
# depends_on:
97+
# - selenium-hub
98+
# environment:
99+
# - RUN_IN_DOCKER_COMPOSE=true
100+
# - SELENIUM_GRID_HOST=selenium-hub
101+
# - TEST_PARALLEL_HARDENING=${TEST_PARALLEL_HARDENING}
102+
# - BINDING_VERSION=${BINDING_VERSION}
103+
# - TEST_PLATFORMS=${PLATFORMS}
104+
# command: ["/bin/bash", "-c", "./bootstrap.sh ${NODE}"]

0 commit comments

Comments
 (0)