Skip to content
This repository was archived by the owner on Jun 22, 2024. It is now read-only.

Commit 6bee823

Browse files
committed
Merge remote-tracking branch 'origin/4.18.1' into trunk
[deploy]
2 parents 420dddd + db91598 commit 6bee823

File tree

74 files changed

+1282
-493
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+1282
-493
lines changed

.circleci/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,8 @@ jobs:
205205
BUILD_ARGS: << parameters.build-args >>
206206
MAKE_TARGETS: << parameters.make-targets >>
207207
DEPLOY_BRANCH: trunk
208-
RELEASE: selenium-4.18.0
209-
SELENIUM_VERSION: 4.18.0
208+
RELEASE: selenium-4.18.1
209+
SELENIUM_VERSION: 4.18.1
210210
GITHUB_USER: seleniumhq-community
211211
GITHUB_REPO: docker-seleniarm
212212
steps:

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ body:
5656
attributes:
5757
label: Docker Selenium version (image tag)
5858
description: What version of Docker Selenium are you using?
59-
placeholder: 4.18.0-20240220? Please use the full tag, avoid "latest"
59+
placeholder: 4.18.1-20240224? Please use the full tag, avoid "latest"
6060
validations:
6161
required: true
6262
- type: input

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
- name: Update tag in docs and files
5151
run: ./update_tag_in_docs_and_files.sh ${LATEST_TAG} ${NEXT_TAG}
5252
- name: Update chart CHANGELOG
53-
run: ./generate_chart_changelog.sh HEAD
53+
run: ./generate_chart_changelog.sh
5454
- name: Build images
5555
run: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make build
5656
- name: Login Docker Hub

.github/workflows/helm-chart-release.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
- name: Checkout
1919
uses: actions/checkout@main
2020
with:
21+
persist-credentials: false
2122
fetch-depth: 0
2223

2324
- name: Configure Git
@@ -26,7 +27,7 @@ jobs:
2627
git config user.email "[email protected]"
2728
2829
- name: Get chart release notes (chart_release_notes.md)
29-
run: ./generate_chart_changelog.sh HEAD
30+
run: ./generate_chart_changelog.sh
3031

3132
- name: Run chart-releaser
3233
uses: helm/chart-releaser-action@main
@@ -36,3 +37,15 @@ jobs:
3637
env:
3738
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
3839
CR_RELEASE_NOTES_FILE: RELEASE_NOTES.md
40+
41+
- name: Commit files
42+
run: |
43+
git config --local user.email "[email protected]"
44+
git config --local user.name "Selenium CI Bot"
45+
git commit -m "Update tag in docs and files" -a || true
46+
47+
- name: Push changes
48+
uses: ad-m/github-push-action@master
49+
with:
50+
github_token: ${{ secrets.SELENIUM_CI_TOKEN }}
51+
branch: trunk

.github/workflows/helm-chart-test.yml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ on:
1515
description: 'Test parameter for different request timeout'
1616
required: false
1717
default: '370'
18+
log-level:
19+
description: 'Test parameter for different log level'
20+
required: false
21+
default: 'FINE'
1822
schedule:
1923
- cron: '0 0 * * *'
2024

@@ -32,22 +36,34 @@ jobs:
3236
- k8s-version: 'v1.25.16'
3337
test-strategy: job
3438
cluster: 'kind'
39+
helm-version: 'v3.10.3'
40+
test-existing-keda: true
3541
- k8s-version: 'v1.26.14'
3642
test-strategy: deployment
3743
cluster: 'kind'
44+
helm-version: 'v3.11.3'
45+
test-existing-keda: true
3846
- k8s-version: 'v1.27.11'
3947
test-strategy: job_https
4048
cluster: 'kind'
49+
helm-version: 'v3.12.3'
50+
test-existing-keda: true
4151
- k8s-version: 'v1.28.7'
4252
test-strategy: job_hostname
4353
cluster: 'minikube'
54+
helm-version: 'v3.13.3'
55+
test-existing-keda: false
4456
- k8s-version: 'v1.29.2'
4557
test-strategy: deployment_https
4658
cluster: 'minikube'
59+
helm-version: 'v3.14.3'
60+
test-existing-keda: false
4761
env:
4862
CLUSTER: ${{ matrix.cluster }}
4963
KUBERNETES_VERSION: ${{ matrix.k8s-version }}
5064
ARTIFACT_NAME: ${{ matrix.k8s-version }}-${{ matrix.test-strategy }}
65+
HELM_VERSION: ${{ matrix.helm-version }}
66+
TEST_EXISTING_KEDA: ${{ matrix.test-existing-keda }}
5167
steps:
5268
- uses: actions/checkout@main
5369
- name: Output Docker info
@@ -78,7 +94,7 @@ jobs:
7894
with:
7995
timeout_minutes: 10
8096
max_attempts: 3
81-
command: CLUSTER=${CLUSTER} make chart_setup_env
97+
command: CLUSTER=${CLUSTER} HELM_VERSION=${HELM_VERSION} make chart_setup_env
8298
- name: Build Helm charts
8399
run: |
84100
BUILD_DATE=${BUILD_DATE} make chart_build
@@ -91,7 +107,7 @@ jobs:
91107
with:
92108
timeout_minutes: 10
93109
max_attempts: 3
94-
command: CLUSTER=${CLUSTER} KUBERNETES_VERSION=${KUBERNETES_VERSION} NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_cluster_setup
110+
command: CLUSTER=${CLUSTER} KUBERNETES_VERSION=${KUBERNETES_VERSION} NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_EXISTING_KEDA=${TEST_EXISTING_KEDA} make chart_cluster_setup
95111
- name: Test chart template
96112
run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_test_template
97113
- name: Test set custom CA certificate
@@ -102,13 +118,14 @@ jobs:
102118
echo "AUTOSCALING_POLL_INTERVAL=${AUTOSCALING_POLL_INTERVAL}" >> $GITHUB_ENV
103119
env:
104120
AUTOSCALING_POLL_INTERVAL: ${{ github.event.inputs.request-timeout || '370' }}
121+
LOG_LEVEL: ${{ github.event.inputs.log-level || 'FINE' }}
105122
- name: Test Selenium Grid on Kubernetes ${{ matrix.k8s-version }} with Autoscaling ${{ matrix.test-strategy }}
106123
uses: nick-invision/retry@master
107124
with:
108125
timeout_minutes: 30
109126
max_attempts: 3
110127
command: |
111-
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_test_autoscaling_${{ matrix.test-strategy }}
128+
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} TEST_EXISTING_KEDA=${TEST_EXISTING_KEDA} make chart_test_autoscaling_${{ matrix.test-strategy }}
112129
- name: Cleanup Kubernetes cluster
113130
if: always()
114131
run: CLUSTER=${CLUSTER} make chart_cluster_cleanup

.github/workflows/nightly.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ jobs:
8181
- name: Update tag in docs and files
8282
run: ./update_tag_in_docs_and_files.sh ${LATEST_TAG} ${NEXT_TAG}
8383
- name: Setup environment to build chart
84-
run: make chart_setup_env
84+
uses: nick-invision/retry@master
85+
with:
86+
timeout_minutes: 10
87+
max_attempts: 3
88+
command: CLUSTER=${CLUSTER} HELM_VERSION=${HELM_VERSION} make chart_setup_env
8589
- name: Build and lint charts
8690
run: |
8791
make chart_build_nightly

.github/workflows/test-video.yml

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,39 @@ concurrency:
44

55
on:
66
workflow_dispatch:
7+
inputs:
8+
request-timeout:
9+
description: 'Test parameter for different request timeout'
10+
required: false
11+
default: '400'
12+
parallel-hardening:
13+
description: 'Test parameter to enable hardening parallel tests'
14+
required: false
15+
default: 'true'
16+
log-level:
17+
description: 'Test parameter for different log level'
18+
required: false
19+
default: 'INFO'
720
push:
821
paths-ignore:
922
- '**.md'
1023
pull_request:
1124
paths-ignore:
1225
- '**.md'
26+
schedule:
27+
- cron: '0 0 * * *'
1328

1429
permissions:
1530
contents: read
1631

1732
jobs:
1833
build-and-test:
19-
name: Test video recorded through Docker Selenium
34+
name: Test Docker Selenium
2035
runs-on: ubuntu-latest
36+
strategy:
37+
fail-fast: false
38+
matrix:
39+
test-strategy: [test_video, test_parallel]
2140
steps:
2241
- uses: actions/checkout@main
2342
- name: Output Docker info
@@ -41,19 +60,38 @@ jobs:
4160
run: echo ${BRANCH}
4261
- name: Sets build date
4362
run: echo "BUILD_DATE=$(date '+%Y%m%d')" >> $GITHUB_ENV
44-
- name: Run Docker Compose to record video
45-
run: USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test_video
63+
- name: Pre-build to reduce logs in test phase
64+
run: |
65+
VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make hub
66+
VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chrome
67+
VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make firefox
68+
VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make edge
69+
- name: Set test parameters
70+
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
71+
run: |
72+
echo "LOG_LEVEL=${LOG_LEVEL}" >> $GITHUB_ENV
73+
echo "TEST_PARALLEL_HARDENING=${TEST_PARALLEL_HARDENING}" >> $GITHUB_ENV
74+
echo "REQUEST_TIMEOUT=${REQUEST_TIMEOUT}" >> $GITHUB_ENV
75+
env:
76+
LOG_LEVEL: ${{ github.event.inputs.log-level || 'INFO' }}
77+
TEST_PARALLEL_HARDENING: ${{ github.event.inputs.parallel-hardening || 'true' }}
78+
REQUEST_TIMEOUT: ${{ github.event.inputs.request-timeout || '400' }}
79+
- name: Run Docker Compose to ${{ matrix.test-strategy }}
80+
run: USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make ${{ matrix.test-strategy }}
4681
- name: Upload recorded Chrome video
82+
if: matrix.test-strategy == 'test_video'
4783
uses: actions/upload-artifact@main
4884
with:
4985
name: chrome_video
5086
path: ./tests/videos/chrome_video.mp4
5187
- name: Upload recorded Edge video
88+
if: matrix.test-strategy == 'test_video'
5289
uses: actions/upload-artifact@main
5390
with:
5491
name: edge_video
5592
path: ./tests/videos/edge_video.mp4
5693
- name: Upload recorded Firefox video
94+
if: matrix.test-strategy == 'test_video'
5795
uses: actions/upload-artifact@main
5896
with:
5997
name: firefox_video

Base/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#FROM ubuntu:jammy-20240125
1+
#FROM ubuntu:jammy-20240227
22
FROM debian:bookworm
33
LABEL authors="Selenium <[email protected]>"
44

Makefile

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ NAME := $(or $(NAME),$(NAME),selenium)
22
CURRENT_DATE := $(shell date '+%Y%m%d')
33
BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE))
44
BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.18.0)
5-
BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.18.0)
5+
BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.18.1)
66
BASE_RELEASE_NIGHTLY := $(or $(BASE_RELEASE_NIGHTLY),$(BASE_RELEASE_NIGHTLY),nightly)
77
BASE_VERSION_NIGHTLY := $(or $(BASE_VERSION_NIGHTLY),$(BASE_VERSION_NIGHTLY),4.19.0-SNAPSHOT)
8-
VERSION := $(or $(VERSION),$(VERSION),4.18.0)
8+
VERSION := $(or $(VERSION),$(VERSION),4.18.1)
99
TAG_VERSION := $(VERSION)-$(BUILD_DATE)
1010
CHART_VERSION_NIGHTLY := $(or $(CHART_VERSION_NIGHTLY),$(CHART_VERSION_NIGHTLY),1.0.0-nightly)
1111
NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME))
@@ -506,6 +506,7 @@ test_firefox:
506506
test_firefox_standalone:
507507
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneFirefox
508508

509+
<<<<<<< HEAD
509510

510511
# Test multi-arch container images
511512
test_multi_arch: test_chromium_multi \
@@ -526,6 +527,20 @@ test_firefox_multi:
526527
test_firefox_standalone_multi:
527528
VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) ./tests/bootstrap.sh StandaloneFirefox
528529

530+
=======
531+
test_parallel: hub chrome firefox edge
532+
for node in DeploymentAutoscaling JobAutoscaling ; do \
533+
cd ./tests || true ; \
534+
echo TAG=$(TAG_VERSION) > .env ; \
535+
echo TEST_DRAIN_AFTER_SESSION_COUNT=$(or $(TEST_DRAIN_AFTER_SESSION_COUNT), 0) >> .env ; \
536+
echo TEST_PARALLEL_HARDENING=$(or $(TEST_PARALLEL_HARDENING), "false") >> .env ; \
537+
echo LOG_LEVEL=$(or $(LOG_LEVEL), "INFO") >> .env ; \
538+
echo REQUEST_TIMEOUT=$(or $(REQUEST_TIMEOUT), 300) >> .env ; \
539+
echo NODE=$$node >> .env ; \
540+
echo UID=$$(id -u) >> .env ; \
541+
docker-compose -f docker-compose-v3-test-parallel.yml up --no-log-prefix --exit-code-from tests --build ; \
542+
done
543+
>>>>>>> origin/4.18.1
529544

530545
# This should run on its own CI job. There is no need to combine it with the other tests.
531546
# Its main purpose is to check that a video file was generated.
@@ -593,16 +608,18 @@ chart_test_edge:
593608

594609
chart_test_autoscaling_deployment_https:
595610
CHART_FULL_DISTRIBUTED_MODE=true CHART_ENABLE_INGRESS_HOSTNAME=true CHART_ENABLE_BASIC_AUTH=true SELENIUM_GRID_PROTOCOL=https SELENIUM_GRID_PORT=443 \
611+
SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=1 \
596612
VERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) NAMESPACE=$(NAMESPACE) \
597613
./tests/charts/make/chart_test.sh DeploymentAutoscaling
598614

599615
chart_test_autoscaling_deployment:
600-
CHART_ENABLE_TRACING=true SELENIUM_GRID_TEST_HEADLESS=true SELENIUM_GRID_HOST=$$(hostname -i) \
616+
CHART_ENABLE_TRACING=true SELENIUM_GRID_TEST_HEADLESS=true SELENIUM_GRID_HOST=$$(hostname -i) RELEASE_NAME=selenium \
617+
SELENIUM_GRID_AUTOSCALING_MIN_REPLICA=1 \
601618
VERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) NAMESPACE=$(NAMESPACE) \
602619
./tests/charts/make/chart_test.sh DeploymentAutoscaling
603620

604621
chart_test_autoscaling_job_https:
605-
SELENIUM_GRID_TEST_HEADLESS=true SELENIUM_GRID_PROTOCOL=https CHART_ENABLE_BASIC_AUTH=true SELENIUM_GRID_PORT=443 \
622+
SELENIUM_GRID_TEST_HEADLESS=true SELENIUM_GRID_PROTOCOL=https CHART_ENABLE_BASIC_AUTH=true RELEASE_NAME=selenium SELENIUM_GRID_PORT=443 SUB_PATH=/ \
606623
VERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) NAMESPACE=$(NAMESPACE) \
607624
./tests/charts/make/chart_test.sh JobAutoscaling
608625

@@ -612,7 +629,7 @@ chart_test_autoscaling_job_hostname:
612629
./tests/charts/make/chart_test.sh JobAutoscaling
613630

614631
chart_test_autoscaling_job:
615-
CHART_ENABLE_TRACING=true CHART_FULL_DISTRIBUTED_MODE=true CHART_ENABLE_INGRESS_HOSTNAME=true \
632+
CHART_ENABLE_TRACING=true CHART_FULL_DISTRIBUTED_MODE=true CHART_ENABLE_INGRESS_HOSTNAME=true SELENIUM_GRID_HOST=selenium-grid.local RELEASE_NAME=selenium SUB_PATH=/ \
616633
VERSION=$(TAG_VERSION) VIDEO_TAG=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) NAMESPACE=$(NAMESPACE) \
617634
./tests/charts/make/chart_test.sh JobAutoscaling
618635

NodeChrome/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ USER ${SEL_UID}
5959
# Dumping Browser information for config
6060
#============================================
6161
RUN echo "chrome" > /opt/selenium/browser_name
62-
RUN google-chrome --version | awk '{print $3}' > /opt/selenium/browser_version
62+
RUN google-chrome --version | awk '{print $3}' | cut -d'.' -f1,2 > /opt/selenium/browser_version
6363
RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" > /opt/selenium/browser_binary_location
6464

6565
ENV SE_OTEL_SERVICE_NAME "selenium-node-chrome"

NodeDocker/config.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to
33
# start a container with the given image.
44
configs = [
5-
"selenium/standalone-firefox:4.18.0-20240220", '{"browserName": "firefox", "platformName": "linux"}',
6-
"selenium/standalone-chrome:4.18.0-20240220", '{"browserName": "chrome", "platformName": "linux"}',
7-
"selenium/standalone-edge:4.18.0-20240220", '{"browserName": "MicrosoftEdge", "platformName": "linux"}'
5+
"selenium/standalone-firefox:4.18.1-20240224", '{"browserName": "firefox", "platformName": "linux"}',
6+
"selenium/standalone-chrome:4.18.1-20240224", '{"browserName": "chrome", "platformName": "linux"}',
7+
"selenium/standalone-edge:4.18.1-20240224", '{"browserName": "MicrosoftEdge", "platformName": "linux"}'
88
]
99

1010
# URL for connecting to the docker daemon
@@ -14,7 +14,7 @@ configs = [
1414
# socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock
1515
url = "http://127.0.0.1:2375"
1616
# Docker image used for video recording
17-
video-image = "selenium/video:ffmpeg-6.1-20240220"
17+
video-image = "selenium/video:ffmpeg-6.1-20240224"
1818

1919
# Uncomment the following section if you are running the node on a separate VM
2020
# Fill out the placeholders with appropriate values

NodeEdge/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ USER ${SEL_UID}
5252
# Dumping Browser information for config
5353
#============================================
5454
RUN echo "MicrosoftEdge" > /opt/selenium/browser_name
55-
RUN microsoft-edge --version | awk '{print $3}' > /opt/selenium/browser_version
55+
RUN microsoft-edge --version | awk '{print $3}' | cut -d'.' -f1,2 > /opt/selenium/browser_version
5656
RUN echo "\"ms:edgeOptions\": {\"binary\": \"/usr/bin/microsoft-edge\"}" > /opt/selenium/browser_binary_location
5757

5858
ENV SE_OTEL_SERVICE_NAME "selenium-node-edge"

0 commit comments

Comments
 (0)