Skip to content

Commit 49db679

Browse files
committed
Merge remote-tracking branch 'origin/trunk' into python
2 parents 05aa6a6 + 4c35f64 commit 49db679

File tree

143 files changed

+2557
-330
lines changed

Some content is hidden

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

143 files changed

+2557
-330
lines changed

.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.29.0-20250303? Please use the full tag, avoid "latest"
59+
placeholder: 4.30.0-20250323? Please use the full tag, avoid "latest"
6060
validations:
6161
required: true
6262
- type: input

.github/workflows/build-ffmpeg.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ on:
2020
jobs:
2121
deploy:
2222
name: Build and Deploy FFmpeg
23-
runs-on: ubuntu-24.04
23+
runs-on: blacksmith-8vcpu-ubuntu-2204
2424
permissions: write-all
2525
steps:
2626
- name: Checkout code

.github/workflows/deploy.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,11 @@ jobs:
5151
- build-test
5252
if: (contains(toJson(github.event.commits), '[deploy]') == true || (github.event_name == 'workflow_dispatch' && github.event.inputs.release == 'true')) && !failure() && !cancelled()
5353
name: Deploy and Release
54-
runs-on: ubuntu-24.04
54+
runs-on: blacksmith-8vcpu-ubuntu-2204
5555
permissions: write-all
5656
steps:
5757
- name: Free Disk Space (Ubuntu)
5858
uses: jlumbroso/free-disk-space@main
59-
with:
60-
tool-cache: false
61-
large-packages: false
6259
- name: Checkout code
6360
uses: actions/checkout@main
6461
with:

.github/workflows/nightly.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,11 @@ jobs:
2424
- build-test
2525
if: (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') && !failure() && !cancelled()
2626
name: Deploy and Release Nightly
27-
runs-on: ubuntu-24.04
27+
runs-on: blacksmith-8vcpu-ubuntu-2204
2828
permissions: write-all
2929
steps:
3030
- name: Free Disk Space (Ubuntu)
3131
uses: jlumbroso/free-disk-space@main
32-
with:
33-
tool-cache: false
34-
large-packages: false
3532
- name: Checkout code
3633
uses: actions/checkout@main
3734
with:

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
description: 'Build date in format YYYYMMDD. Must provide if reusing base image'
2323
required: false
2424
type: string
25-
default: '20250303'
25+
default: '20250323'
2626
browser-name:
2727
description: 'Browser name to build. E.g: chrome'
2828
required: true

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
description: 'Build date in format YYYYMMDD. Must provide if reusing base image'
2323
required: false
2424
type: string
25-
default: '20250303'
25+
default: '20250323'
2626
browser-name:
2727
description: 'Browser name to build. E.g: edge'
2828
required: true

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
description: 'Build date in format YYYYMMDD. Must provide if reusing base image'
2323
required: false
2424
type: string
25-
default: '20250303'
25+
default: '20250323'
2626
browser-name:
2727
description: 'Browser name to build. E.g: firefox'
2828
required: true

.keda/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ The stable implementation will be merged to the upstream KEDA repository frequen
1313
Replace the image registry and tag of these KEDA components with the patched image tag:
1414

1515
```bash
16-
docker pull selenium/keda:2.16.1-selenium-grid-20250303
17-
docker pull selenium/keda-metrics-apiserver:2.16.1-selenium-grid-20250303
18-
docker pull selenium/keda-admission-webhooks:2.16.1-selenium-grid-20250303
16+
docker pull selenium/keda:2.16.1-selenium-grid-20250323
17+
docker pull selenium/keda-metrics-apiserver:2.16.1-selenium-grid-20250323
18+
docker pull selenium/keda-admission-webhooks:2.16.1-selenium-grid-20250323
1919
```
2020

2121
Besides that, you also can use image tag `latest` or `nightly`.
@@ -27,15 +27,15 @@ If you are deploying KEDA core using their official Helm [chart](https://github.
2727
keda:
2828
registry: selenium
2929
repository: keda
30-
tag: "2.16.1-selenium-grid-20250303"
30+
tag: "2.16.1-selenium-grid-20250323"
3131
metricsApiServer:
3232
registry: selenium
3333
repository: keda-metrics-apiserver
34-
tag: "2.16.1-selenium-grid-20250303"
34+
tag: "2.16.1-selenium-grid-20250323"
3535
webhooks:
3636
registry: selenium
3737
repository: keda-admission-webhooks
38-
tag: "2.16.1-selenium-grid-20250303"
38+
tag: "2.16.1-selenium-grid-20250323"
3939
```
4040
4141
If you are deployment Selenium Grid chart with `autoscaling.enabled` is `true` (implies installing KEDA sub-chart), KEDA images registry and tag already set in the `values.yaml`. Refer to list [configuration](../charts/selenium-grid/CONFIGURATION.md).

.keda/scalers/selenium_grid_scaler.go

Lines changed: 113 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ type seleniumGridScalerMetadata struct {
4646
TargetValue int64
4747
}
4848

49+
type Platform struct {
50+
name string
51+
family *Platform
52+
}
53+
4954
type SeleniumResponse struct {
5055
Data Data `json:"data"`
5156
}
@@ -350,9 +355,8 @@ func checkRequestCapabilitiesMatch(request map[string]interface{}, browserName s
350355
(_browserVersion != "" && strings.HasPrefix(browserVersion, _browserVersion))
351356

352357
// Check if platformName matches
353-
_platformName := getPlatformName(request)
354-
platformNameMatch := (_platformName == "" || strings.EqualFold("any", _platformName) || strings.EqualFold(platformName, _platformName)) &&
355-
(platformName == "" || platformName == "any" || strings.EqualFold(platformName, _platformName))
358+
platformNameMatch := strings.EqualFold(GetPlatform(platformName).name, GetPlatform(getPlatformName(request)).name) ||
359+
isSameFamily(GetPlatform(platformName), GetPlatform(getPlatformName(request)))
356360

357361
return browserNameMatch && browserVersionMatch && platformNameMatch && managedDownloadsEnabled(capabilities, request) && extensionCapabilitiesMatch(request, capabilities)
358362
}
@@ -371,9 +375,8 @@ func checkStereotypeCapabilitiesMatch(capability map[string]interface{}, browser
371375
(_browserVersion != "" && strings.HasPrefix(browserVersion, _browserVersion))
372376

373377
// Check if platformName matches
374-
_platformVersion := getPlatformName(capability)
375-
platformNameMatch := (_platformVersion == "" || strings.EqualFold("any", _platformVersion) || strings.EqualFold(platformName, _platformVersion)) &&
376-
(platformName == "" || platformName == "any" || strings.EqualFold(platformName, _platformVersion))
378+
platformNameMatch := strings.EqualFold(GetPlatform(platformName).name, GetPlatform(getPlatformName(capability)).name) ||
379+
isSameFamily(GetPlatform(platformName), GetPlatform(getPlatformName(capability)))
377380

378381
return browserNameMatch && browserVersionMatch && platformNameMatch && managedDownloadsEnabled(capabilities, capability) && extensionCapabilitiesMatch(capability, capabilities)
379382
}
@@ -489,3 +492,107 @@ func getCountFromSeleniumResponse(b []byte, browserName string, browserVersion s
489492

490493
return int64(len(newRequestNodes)), onGoingSessions, nil
491494
}
495+
496+
// Mapping of platform name enum used in the Selenium Grid core
497+
// https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/Platform.java
498+
var (
499+
Windows = Platform{"windows", nil}
500+
XP = Platform{"Windows XP", &Windows}
501+
Vista = Platform{"Windows Vista", &Windows}
502+
Win7 = Platform{"Windows 7", &Windows}
503+
Win8 = Platform{"Windows 8", &Windows}
504+
Win8_1 = Platform{"Windows 8.1", &Windows}
505+
Win10 = Platform{"Windows 10", &Windows}
506+
Win11 = Platform{"Windows 11", &Windows}
507+
Mac = Platform{"mac", nil}
508+
SnowLeopard = Platform{"OS X 10.6", &Mac}
509+
MountainLion = Platform{"OS X 10.8", &Mac}
510+
Mavericks = Platform{"OS X 10.9", &Mac}
511+
Yosemite = Platform{"OS X 10.10", &Mac}
512+
ElCapitan = Platform{"OS X 10.11", &Mac}
513+
Sierra = Platform{"macOS 10.12", &Mac}
514+
HighSierra = Platform{"macOS 10.13", &Mac}
515+
Mojave = Platform{"macOS 10.14", &Mac}
516+
Catalina = Platform{"macOS 10.15", &Mac}
517+
BigSur = Platform{"macOS 11.0", &Mac}
518+
Monterey = Platform{"macOS 12.0", &Mac}
519+
Ventura = Platform{"macOS 13.0", &Mac}
520+
Sonoma = Platform{"macOS 14.0", &Mac}
521+
Sequoia = Platform{"macOS 15.0", &Mac}
522+
Unix = Platform{"unix", nil}
523+
Linux = Platform{"linux", &Unix}
524+
Bsd = Platform{"bsd", &Unix}
525+
Solaris = Platform{"solaris", &Unix}
526+
Android = Platform{"android", nil}
527+
IOS = Platform{"iOS", nil}
528+
Any = Platform{"any", nil}
529+
)
530+
531+
func isSameFamily(p1, p2 Platform) bool {
532+
return p1.family != nil && p2.family != nil && p1.family == p2.family
533+
}
534+
535+
func GetPlatform(input string) Platform {
536+
switch strings.ToLower(input) {
537+
case "windows":
538+
return Windows
539+
case "windows server 2003", "xp", "winnt", "windows_nt", "windows nt":
540+
return XP
541+
case "windows server 2008", "windows vista":
542+
return Vista
543+
case "windows 7", "win7":
544+
return Win7
545+
case "windows server 2012", "windows 8", "win8":
546+
return Win8
547+
case "windows 8.1", "win8.1":
548+
return Win8_1
549+
case "windows 10", "win10":
550+
return Win10
551+
case "windows 11", "win11":
552+
return Win11
553+
case "mac", "darwin", "macos", "mac os x", "os x":
554+
return Mac
555+
case "os x 10.6", "macos 10.6", "snow leopard":
556+
return SnowLeopard
557+
case "os x 10.8", "macos 10.8", "mountain lion":
558+
return MountainLion
559+
case "os x 10.9", "macos 10.9", "mavericks":
560+
return Mavericks
561+
case "os x 10.10", "macos 10.10", "yosemite":
562+
return Yosemite
563+
case "os x 10.11", "macos 10.11", "el capitan":
564+
return ElCapitan
565+
case "os x 10.12", "macos 10.12", "sierra":
566+
return Sierra
567+
case "os x 10.13", "macos 10.13", "high sierra":
568+
return HighSierra
569+
case "os x 10.14", "macos 10.14", "mojave":
570+
return Mojave
571+
case "os x 10.15", "macos 10.15", "catalina":
572+
return Catalina
573+
case "os x 11.0", "macos 11.0", "big sur":
574+
return BigSur
575+
case "os x 12.0", "macos 12.0", "monterey":
576+
return Monterey
577+
case "os x 13.0", "macos 13.0", "ventura":
578+
return Ventura
579+
case "os x 14.0", "macos 14.0", "sonoma":
580+
return Sonoma
581+
case "os x 15.0", "macos 15.0", "sequoia":
582+
return Sequoia
583+
case "linux":
584+
return Linux
585+
case "bsd":
586+
return Bsd
587+
case "solaris":
588+
return Solaris
589+
case "android", "dalvik":
590+
return Android
591+
case "ios":
592+
return IOS
593+
case "any", "":
594+
return Any
595+
default:
596+
return Platform{strings.ToLower(input), nil}
597+
}
598+
}

CHANGELOG/4.30.0/chrome_100.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
```
2+
./tag_and_push_browser_images.sh 4.30.0 20250323 selenium false chrome true
3+
Tagging images for browser chrome, version 4.30.0, build date 20250323, namespace selenium
4+
Selenium Grid version -> 4.30.0-20250323
5+
Chrome version -> 100.0.4896.127
6+
Short Chrome version -> 100.0
7+
ChromeDriver version -> 100.0.4896.60
8+
Short ChromeDriver version -> 100.0
9+
Tagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.30.0-20250323
10+
Tagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-grid-4.30.0-20250323
11+
Tagged selenium/node-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250323
12+
Tagged selenium/standalone-chrome:100.0.4896.127-chromedriver-100.0.4896.60-20250323
13+
Tagged selenium/node-chrome:100.0.4896.127-20250323
14+
Tagged selenium/standalone-chrome:100.0.4896.127-20250323
15+
Tagged selenium/node-chrome:100.0-chromedriver-100.0-grid-4.30.0-20250323
16+
Tagged selenium/standalone-chrome:100.0-chromedriver-100.0-grid-4.30.0-20250323
17+
Tagged selenium/node-chrome:100.0-chromedriver-100.0-20250323
18+
Tagged selenium/standalone-chrome:100.0-chromedriver-100.0-20250323
19+
Tagged selenium/node-chrome:100.0-20250323
20+
Tagged selenium/standalone-chrome:100.0-20250323
21+
```

0 commit comments

Comments
 (0)