Skip to content

Commit 72552d2

Browse files
committed
Update Selenium Grid 4.32.0 and browser versions matrix
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 03b34b6 commit 72552d2

File tree

10 files changed

+351
-18
lines changed

10 files changed

+351
-18
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
browser-versions:
3232
description: 'List browser version to build. E.g: [130, 131]'
3333
required: true
34-
default: '[95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134]'
34+
default: '[95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135]'
3535
push-image:
3636
description: 'Push image after testing successfully'
3737
required: true

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
browser-versions:
3232
description: 'List browser version to build. E.g: [130, 131]'
3333
required: true
34-
default: '[95, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134]'
34+
default: '[95, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135]'
3535
push-image:
3636
description: 'Push image after testing successfully'
3737
required: true

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
browser-versions:
3232
description: 'List browser version to build. E.g: [130, 131]'
3333
required: true
34-
default: '[98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136]'
34+
default: '[98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137]'
3535
push-image:
3636
description: 'Push image after testing successfully'
3737
required: true
@@ -172,6 +172,7 @@ jobs:
172172
- name: Fetch latest version
173173
run: |
174174
python3 -m pip install -r tests/requirements.txt
175+
python3 tests/build-backward-compatible/fetch_firefox_version.py
175176
python3 tests/build-backward-compatible/fetch_version.py
176177
- name: Download results
177178
uses: actions/download-artifact@v4

Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
NAME := $(or $(NAME),$(NAME),selenium)
22
CURRENT_DATE := $(shell date '+%Y%m%d')
33
BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE))
4-
BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.31.0)
5-
BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.31.0)
6-
BINDING_VERSION := $(or $(BINDING_VERSION),$(BINDING_VERSION),4.31.0)
4+
BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.32.0)
5+
BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.32.0)
6+
BINDING_VERSION := $(or $(BINDING_VERSION),$(BINDING_VERSION),4.32.0)
77
BASE_RELEASE_NIGHTLY := $(or $(BASE_RELEASE_NIGHTLY),$(BASE_RELEASE_NIGHTLY),nightly)
8-
BASE_VERSION_NIGHTLY := $(or $(BASE_VERSION_NIGHTLY),$(BASE_VERSION_NIGHTLY),4.32.0-SNAPSHOT)
9-
VERSION := $(or $(VERSION),$(VERSION),4.31.0)
10-
MVN_SELENIUM_VERSION := $(or $(MVN_SELENIUM_VERSION),$(MVN_SELENIUM_VERSION),4.31.0)
8+
BASE_VERSION_NIGHTLY := $(or $(BASE_VERSION_NIGHTLY),$(BASE_VERSIO3_NIGHTLY),4.33.0-SNAPSHOT)
9+
VERSION := $(or $(VERSION),$(VERSION),4.32.0)
10+
MVN_SELENIUM_VERSION := $(or $(MVN_SELENIUM_VERSION),$(MVN_SELENIUM_VERSION),4.32.0)
1111
TAG_VERSION := $(VERSION)-$(BUILD_DATE)
1212
CHART_VERSION_NIGHTLY := $(or $(CHART_VERSION_NIGHTLY),$(CHART_VERSION_NIGHTLY),1.0.0-nightly)
1313
NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME))

tests/build-backward-compatible/bootstrap.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ IFS=',' read -ra VERSION_LIST <<< "$CDP_VERSIONS"
2424

2525
mkdir -p CHANGELOG/${SELENIUM_VERSION}
2626

27+
python3 tests/build-backward-compatible/fetch_firefox_version.py
2728
python3 tests/build-backward-compatible/fetch_version.py
2829

2930
for CDP_VERSION in "${VERSION_LIST[@]}"; do

tests/build-backward-compatible/browser-matrix.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
matrix:
22
browser:
3-
'137':
3+
'138':
44
EDGE_VERSION: null
55
CHROME_VERSION: null
6-
FIREFOX_VERSION: 137.0.1
6+
FIREFOX_VERSION: 138.0.1
77
FIREFOX_PLATFORMS: linux/amd64,linux/arm64
8-
'136':
8+
'137':
99
EDGE_VERSION: null
1010
CHROME_VERSION: null
11+
FIREFOX_VERSION: 137.0.2
12+
FIREFOX_PLATFORMS: linux/amd64,linux/arm64
13+
'136':
14+
EDGE_VERSION: microsoft-edge-stable=136.0.3240.50-1
15+
CHROME_VERSION: google-chrome-stable=136.0.7103.59-1
1116
FIREFOX_VERSION: 136.0.4
1217
FIREFOX_PLATFORMS: linux/amd64,linux/arm64
1318
'135':
14-
EDGE_VERSION: microsoft-edge-stable=135.0.3179.73-1
15-
CHROME_VERSION: google-chrome-stable=135.0.7049.84-1
19+
EDGE_VERSION: microsoft-edge-stable=135.0.3179.98-1
20+
CHROME_VERSION: google-chrome-stable=135.0.7049.114-1
1621
FIREFOX_VERSION: 135.0.1
1722
FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2025/01/2025-01-06-09-47-46-mozilla-central/firefox-135.0a1.en-US.linux-aarch64.deb
1823
FIREFOX_PLATFORMS: linux/amd64,linux/arm64
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import requests
2+
import re
3+
import yaml
4+
from collections import defaultdict
5+
6+
local_file = 'tests/build-backward-compatible/firefox-matrix.yml'
7+
8+
def fetch_firefox_versions():
9+
url = 'https://ftp.mozilla.org/pub/firefox/releases/'
10+
resp = requests.get(url)
11+
resp.raise_for_status()
12+
# Extract version numbers like 136.0.4/
13+
versions = re.findall(r'(\d+\.\d+(?:\.\d+)?)/', resp.text)
14+
# Filter out pre-releases
15+
versions = [v for v in versions if not any(x in v for x in ['esr', 'rc', 'b', 'a'])]
16+
# Group by major version and keep the highest patch
17+
version_map = defaultdict(list)
18+
for v in versions:
19+
major = v.split('.')[0]
20+
version_map[major].append(v)
21+
# For each major, pick the highest version
22+
result = {}
23+
for major, vlist in version_map.items():
24+
vlist.sort(key=lambda s: list(map(int, s.split('.'))))
25+
result[major] = vlist[-1]
26+
# Build YAML structure
27+
yaml_struct = {'matrix': {'browser': {}}}
28+
for major, version in sorted(result.items(), key=lambda x: int(x[0]), reverse=True):
29+
yaml_struct['matrix']['browser'][str(major)] = {'FIREFOX_VERSION': version}
30+
with open(local_file, 'w') as file:
31+
yaml.dump(yaml_struct, file, default_flow_style=False, sort_keys=False)
32+
33+
fetch_firefox_versions()

tests/build-backward-compatible/fetch_version.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,19 @@
55
# URLs of the source YAML files
66
chrome_url = 'https://raw.githubusercontent.com/NDViet/google-chrome-stable/refs/heads/main/browser-matrix.yml'
77
edge_url = 'https://raw.githubusercontent.com/NDViet/microsoft-edge-stable/refs/heads/main/browser-matrix.yml'
8+
firefox_url = 'tests/build-backward-compatible/firefox-matrix.yml'
89

910
# Local YAML file to update
1011
local_file = 'tests/build-backward-compatible/browser-matrix.yml'
1112

12-
def fetch_yaml(url):
13-
response = requests.get(url)
14-
response.raise_for_status()
15-
return yaml.load(response.text, Loader=yaml.SafeLoader)
13+
def fetch_yaml(url, local = False):
14+
if not local:
15+
response = requests.get(url)
16+
response.raise_for_status()
17+
return yaml.load(response.text, Loader=yaml.SafeLoader)
18+
else:
19+
with open(url, 'r') as f:
20+
return yaml.load(f, Loader=yaml.SafeLoader)
1621

1722
def merge_dicts(dict1, dict2):
1823
for key, value in dict2.items():
@@ -37,6 +42,7 @@ def main():
3742
# Fetch source YAML data
3843
chrome_data = fetch_yaml(chrome_url)
3944
edge_data = fetch_yaml(edge_url)
45+
firefox_data = fetch_yaml(firefox_url, local=True)
4046

4147
# Load local YAML data
4248
with open(local_file, 'r') as file:
@@ -45,6 +51,7 @@ def main():
4551
# Update local YAML data with source data
4652
updated = update_local_yaml(local_data, chrome_data)
4753
updated |= update_local_yaml(local_data, edge_data)
54+
updated |= update_local_yaml(local_data, firefox_data)
4855

4956
# Save updated local YAML data
5057
if updated:

0 commit comments

Comments
 (0)