Skip to content

Commit ba015f3

Browse files
committed
Merge remote-tracking branch 'origin/trunk' into browser-node-changelog
Signed-off-by: Viet Nguyen Duc <[email protected]>
2 parents 5253a26 + 8c90c4f commit ba015f3

File tree

11 files changed

+160
-20
lines changed

11 files changed

+160
-20
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ jobs:
211211
- name: Create Release
212212
if: env.LATEST_TAG != env.NEXT_TAG
213213
id: create_release
214-
uses: softprops/[email protected].3
214+
uses: softprops/[email protected].4
215215
with:
216216
token: ${{ secrets.GITHUB_TOKEN }}
217217
tag_name: "${{ env.GRID_VERSION }}-${{ env.BUILD_DATE }}"

.github/workflows/nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ jobs:
148148
command: make chart_release
149149
- name: Create Nightly Release
150150
id: create_release
151-
uses: softprops/[email protected].3
151+
uses: softprops/[email protected].4
152152
with:
153153
token: ${{ secrets.GITHUB_TOKEN }}
154154
tag_name: ${{ env.BASE_RELEASE }}

.github/workflows/release-chrome-versions.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
timeout_minutes: 10
7979
max_attempts: 3
8080
command: |
81-
make setup_dev_env
81+
INSTALL_DOCKER=false make setup_dev_env
8282
- name: Output Docker info
8383
run: docker info
8484
- name: Set Selenium base version
@@ -121,7 +121,9 @@ jobs:
121121
command: |
122122
make update_browser_versions_matrix
123123
./tests/build-backward-compatible/bootstrap.sh ${GRID_VERSION} ${BROWSER_VERSION} ${BROWSER_NAME} ${REUSE_BASE}
124+
EXIT_CODE=$?
124125
cat .env | xargs -I {} echo {} >> $GITHUB_ENV
126+
exit $EXIT_CODE
125127
- name: Build Hub image for testing
126128
if: env.REUSE_BASE == 'false'
127129
run: make hub

.github/workflows/release-edge-versions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
timeout_minutes: 10
7979
max_attempts: 3
8080
command: |
81-
make setup_dev_env
81+
INSTALL_DOCKER=false make setup_dev_env
8282
- name: Output Docker info
8383
run: docker info
8484
- name: Set Selenium base version

.github/workflows/release-firefox-versions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ jobs:
7878
timeout_minutes: 10
7979
max_attempts: 3
8080
command: |
81-
make setup_dev_env
81+
INSTALL_DOCKER=false make setup_dev_env
8282
- name: Output Docker info
8383
run: docker info
8484
- name: Set Selenium base version

Base/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ LABEL org.opencontainers.image.source="https://github.com/${AUTHORS}/docker-sele
77
ARG VERSION
88
ARG RELEASE=selenium-${VERSION}
99
# Default value should be aligned with upstream Selenium (https://github.com/SeleniumHQ/selenium/blob/trunk/MODULE.bazel)
10-
ARG OPENTELEMETRY_VERSION=1.54.0
10+
ARG OPENTELEMETRY_VERSION=1.54.1
1111
ARG GRPC_VERSION=1.75.0
1212
ARG NETTY_VERSION=4.2.6.Final
1313
ARG CS_VERSION=2.1.25-M18
@@ -143,6 +143,8 @@ RUN --mount=type=secret,id=SEL_PASSWD \
143143
java -jar /tmp/cs fetch --classpath --cache /external_jars \
144144
io.opentelemetry:opentelemetry-exporter-otlp:${OPENTELEMETRY_VERSION} \
145145
io.grpc:grpc-netty:${GRPC_VERSION} \
146+
io.netty:netty-handler-proxy:${NETTY_VERSION} \
147+
io.netty:netty-parent:${NETTY_VERSION} \
146148
io.netty:netty-codec-http:${NETTY_VERSION} \
147149
io.netty:netty-codec-http2:${NETTY_VERSION} \
148150
io.netty:netty-codec:${NETTY_VERSION} \

CHANGELOG/README.md

Lines changed: 52 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#!/usr/bin/env python3
2+
import os
3+
import re
4+
from collections import defaultdict
5+
6+
7+
def scan_changelog():
8+
matrix = defaultdict(lambda: defaultdict(set))
9+
10+
for grid_version in os.listdir('.'):
11+
if not os.path.isdir(grid_version) or not re.match(r'\d+\.\d+\.\d+', grid_version):
12+
continue
13+
14+
for file in os.listdir(grid_version):
15+
if file.endswith('.md'):
16+
match = re.match(r'(\w+)_(\d+)\.md', file)
17+
if match:
18+
browser, version = match.groups()
19+
matrix[grid_version][browser].add(int(version))
20+
21+
return matrix
22+
23+
24+
def generate_readme(matrix):
25+
all_browsers = set()
26+
all_versions = defaultdict(set)
27+
28+
for grid_versions in matrix.values():
29+
for browser, versions in grid_versions.items():
30+
all_browsers.add(browser)
31+
all_versions[browser].update(versions)
32+
33+
browsers = sorted(all_browsers)
34+
grid_versions = sorted(matrix.keys(), key=lambda x: [int(i) for i in x.split('.')], reverse=True)
35+
36+
readme = """# Selenium Grid x Browser Version Matrix
37+
38+
This matrix shows available Docker images with packaged Selenium Grid and browser versions. It helps users quickly identify which image tags to pull for their testing needs.
39+
40+
**Motivation**: To supply the latest Selenium Grid core version with new functionality while keeping users able to use it for testing purposes like cross-browser testing or pinning a browser version due to limited support or issues at specific browser versions. We deliver Docker images for Node and Standalone with packaging both Grid and specific driver/browser versions. Users just find the image tag, pull the image they need and start their tests.
41+
42+
**How to read**: Each ✓ links to detailed changelog information for that specific browser version in the corresponding Grid release. Latest versions appear first (descending order).
43+
44+
**Note**: We don't have full testing to ensure every combination of Grid and browser version will function fully as expected. Users need to evaluate and make their own decisions based on their testing requirements.
45+
46+
"""
47+
48+
for browser in browsers:
49+
versions = sorted(all_versions[browser], reverse=True)
50+
readme += f"## {browser.title()}\n\n"
51+
readme += "| Grid Version | " + " | ".join(map(str, versions)) + " |\n"
52+
readme += "|" + "-" * 14 + "|" + "|".join(["-" * 4 for _ in versions]) + "|\n"
53+
54+
for grid_version in grid_versions:
55+
row = f"| {grid_version} |"
56+
for version in versions:
57+
if version in matrix[grid_version][browser]:
58+
mark = f" [✓]({grid_version}/{browser}_{version}.md) "
59+
else:
60+
mark = " "
61+
row += f"{mark}|"
62+
readme += row + "\n"
63+
readme += "\n"
64+
65+
return readme
66+
67+
68+
if __name__ == "__main__":
69+
os.chdir('./CHANGELOG')
70+
matrix = scan_changelog()
71+
readme_content = generate_readme(matrix)
72+
73+
with open('README.md', 'w') as f:
74+
f.write(readme_content)
75+
76+
print("README.md generated successfully!")

Makefile

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ update_selenium_version_matrix: install_python_deps
106106
update_browser_versions_matrix: update_selenium_version_matrix
107107
python3 tests/build-backward-compatible/fetch_firefox_version.py ; \
108108
python3 tests/build-backward-compatible/fetch_version.py ; \
109-
python3 tests/build-backward-compatible/update_workflow_versions.py
109+
python3 tests/build-backward-compatible/update_workflow_versions.py ; \
110+
python3 CHANGELOG/generate-matrix-readme.py
110111

111112
lint_format_scripts: format_makefile format_shell_scripts format_python_scripts generate_readme_charts
112113
git diff --stat --exit-code ; \
@@ -171,7 +172,7 @@ node_base: base video
171172
cd ./NodeBase && SEL_PASSWD=$(SEL_PASSWD) docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=video --build-arg VERSION=$(FFMPEG_TAG_VERSION)-$(BUILD_DATE) --secret id=SEL_PASSWD -t $(NAME)/node-base:$(TAG_VERSION) .
172173

173174
chrome_only:
174-
case "$(PLATFORMS)" in \
175+
set -e; case "$(PLATFORMS)" in \
175176
*linux/amd64*) \
176177
echo "Google Chrome is only supported on linux/amd64" \
177178
&& cd ./NodeChrome && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-chrome:$(TAG_VERSION) . \
@@ -193,7 +194,7 @@ chromium: node_base
193194
cd ./NodeChromium && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg CHROMIUM_VERSION=$(CHROMIUM_VERSION) -t $(NAME)/node-chromium:$(TAG_VERSION) .
194195

195196
edge_only:
196-
case "$(PLATFORMS)" in \
197+
set -e; case "$(PLATFORMS)" in \
197198
*linux/amd64*) \
198199
echo "Microsoft Edge is only supported on linux/amd64" \
199200
&& cd ./NodeEdge && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) -t $(NAME)/node-edge:$(TAG_VERSION) . \
@@ -242,7 +243,7 @@ standalone_firefox_beta: firefox_beta
242243
--build-arg NAMESPACE=$(NAME) --build-arg VERSION=beta --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:beta .
243244

244245
standalone_chrome_only:
245-
case "$(PLATFORMS)" in \
246+
set -e; case "$(PLATFORMS)" in \
246247
*linux/amd64*) \
247248
echo "Google Chrome is only supported on linux/amd64" \
248249
&& cd ./Standalone && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chrome -t $(NAME)/standalone-chrome:$(TAG_VERSION) . \
@@ -266,7 +267,7 @@ standalone_chromium: chromium
266267
cd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-chromium -t $(NAME)/standalone-chromium:$(TAG_VERSION) .
267268

268269
standalone_edge_only:
269-
case "$(PLATFORMS)" in \
270+
set -e; case "$(PLATFORMS)" in \
270271
*linux/amd64*) \
271272
echo "Microsoft Edge is only supported on linux/amd64" \
272273
&& cd ./Standalone && docker buildx build --platform linux/amd64 $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-edge -t $(NAME)/standalone-edge:$(TAG_VERSION) . \
@@ -694,7 +695,7 @@ test: test_chrome \
694695
test_standalone_all_browsers
695696

696697
test_chrome:
697-
case "$(PLATFORMS)" in \
698+
set -e; case "$(PLATFORMS)" in \
698699
*linux/amd64*) \
699700
echo "Google Chrome is only supported on linux/amd64" \
700701
&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeChrome \
@@ -716,7 +717,7 @@ test_chrome_standalone:
716717
esac
717718

718719
test_chrome_standalone_java:
719-
case "$(PLATFORMS)" in \
720+
set -e; case "$(PLATFORMS)" in \
720721
*linux/amd64*) \
721722
echo "Google Chrome is only supported on linux/amd64" \
722723
&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/SeleniumJavaTests/bootstrap_java.sh chrome standalone-chrome \
@@ -727,7 +728,7 @@ test_chrome_standalone_java:
727728
esac
728729

729730
test_edge:
730-
case "$(PLATFORMS)" in \
731+
set -e; case "$(PLATFORMS)" in \
731732
*linux/amd64*) \
732733
echo "Microsoft Edge is only supported on linux/amd64" \
733734
&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeEdge \
@@ -738,7 +739,7 @@ test_edge:
738739
esac
739740

740741
test_edge_standalone:
741-
case "$(PLATFORMS)" in \
742+
set -e; case "$(PLATFORMS)" in \
742743
*linux/amd64*) \
743744
echo "Microsoft Edge is only supported on linux/amd64" \
744745
&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneEdge \
@@ -749,7 +750,7 @@ test_edge_standalone:
749750
esac
750751

751752
test_edge_standalone_java:
752-
case "$(PLATFORMS)" in \
753+
set -e; case "$(PLATFORMS)" in \
753754
*linux/amd64*) \
754755
echo "Microsoft Edge is only supported on linux/amd64" \
755756
&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/SeleniumJavaTests/bootstrap_java.sh edge standalone-edge \
@@ -783,7 +784,7 @@ test_chromium_standalone_java:
783784
PLATFORMS=$(PLATFORMS) VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/SeleniumJavaTests/bootstrap_java.sh chrome standalone-chromium
784785

785786
test_node_all_browsers:
786-
case "$(PLATFORMS)" in \
787+
set -e; case "$(PLATFORMS)" in \
787788
*linux/amd64*) \
788789
echo "Microsoft Edge is only supported on linux/amd64" \
789790
&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh NodeAllEdge \
@@ -797,7 +798,7 @@ test_node_all_browsers:
797798
./tests/bootstrap.sh NodeAllFirefox
798799

799800
test_standalone_all_browsers:
800-
case "$(PLATFORMS)" in \
801+
set -e; case "$(PLATFORMS)" in \
801802
*linux/amd64*) \
802803
echo "Microsoft Edge is only supported on linux/amd64" \
803804
&& PLATFORMS=linux/amd64 VERSION=$(TAG_VERSION) NAMESPACE=$(NAMESPACE) BASE_RELEASE=$(BASE_RELEASE) BASE_VERSION=$(BASE_VERSION) BINDING_VERSION=$(BINDING_VERSION) SKIP_BUILD=true ./tests/bootstrap.sh StandaloneAllEdge \

NodeChrome/install-chrome.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ apt-get update -qqy
2525

2626
# Install Chrome based on version specification
2727
if echo "${CHROME_VERSION}" | grep -qE "google-chrome-stable[_|=][0-9]*"; then
28+
# This is version specific standard when install from apt repository e.g google-chrome-stable=121.0.6167.120-1
2829
# Install specific version
30+
VERSION_NUMBER=$(echo "$CHROME_VERSION" | cut -d'=' -f2)
2931
CHROME_VERSION=$(echo "$CHROME_VERSION" | tr '=' '_')
30-
echo "Installing specific Chrome version: ${CHROME_VERSION}"
31-
wget -qO google-chrome.deb "https://mirror.cs.uchicago.edu/google-chrome/pool/main/g/google-chrome-stable/${CHROME_VERSION}_$(dpkg --print-architecture).deb"
32+
echo "Installing specific Chrome version: ${VERSION_NUMBER}"
33+
wget -qO google-chrome.deb "https://github.com/NDViet/google-chrome-stable/releases/download/${VERSION_NUMBER}/${CHROME_VERSION}_$(dpkg --print-architecture).deb"
3234
apt-get -qqy --no-install-recommends install --allow-downgrades ./google-chrome.deb
3335
rm -rf google-chrome.deb
3436
else

0 commit comments

Comments
 (0)