diff --git a/.github/workflows/dotnet-examples.yml b/.github/workflows/dotnet-examples.yml
index c257d954ea81..7959146d6a01 100644
--- a/.github/workflows/dotnet-examples.yml
+++ b/.github/workflows/dotnet-examples.yml
@@ -56,7 +56,26 @@ jobs:
dotnet-version: 6.x
source-url: https://nuget.pkg.github.com/seleniumhq/index.json
env:
- NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
+ NUGET_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
+ - name: Update Nightly version non-Windows
+ if: matrix.release == 'nightly' && matrix.os != 'windows-latest'
+ run:
+ |
+ latest_nightly=$(./scripts/latest-nightly-version.sh nuget Selenium.WebDriver)
+ dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.WebDriver --version $latest_nightly
+ dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.Support --version $latest_nightly
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Update Nightly version Windows
+ if: matrix.release == 'nightly' && matrix.os == 'windows-latest'
+ shell: pwsh
+ run:
+ |
+ $latest_nightly = ./scripts/latest-nightly-version.ps1 nuget Selenium.WebDriver
+ dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.WebDriver --version $latest_nightly
+ dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.Support --version $latest_nightly
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Java
uses: actions/setup-java@v4
with:
@@ -70,5 +89,3 @@ jobs:
command: |
cd examples/dotnet/SeleniumDocs
dotnet test
- env:
- SE_RELEASE: ${{ matrix.release }}
diff --git a/.github/workflows/java-examples.yml b/.github/workflows/java-examples.yml
index e05dd43dfd64..e591bd244e24 100644
--- a/.github/workflows/java-examples.yml
+++ b/.github/workflows/java-examples.yml
@@ -26,6 +26,7 @@ jobs:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
+ release: [ stable, nightly ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout GitHub repo
@@ -48,7 +49,8 @@ jobs:
with:
distribution: 'temurin'
java-version: 11
- - name: Run Tests
+ - name: Run Tests Stable
+ if: matrix.release == 'stable'
uses: nick-invision/retry@v3.0.0
with:
timeout_minutes: 20
@@ -56,3 +58,12 @@ jobs:
command: |
cd examples/java
mvn -B test
+ - name: Run Tests Nightly
+ if: matrix.release == 'nightly'
+ uses: nick-invision/retry@v3.0.0
+ with:
+ timeout_minutes: 20
+ max_attempts: 3
+ command: |
+ cd examples/java
+ mvn -B -U test -Dselenium.version=4.20.0-SNAPSHOT
diff --git a/.github/workflows/js-examples.yml b/.github/workflows/js-examples.yml
index d72bc473d7c3..7efd4f7bf201 100644
--- a/.github/workflows/js-examples.yml
+++ b/.github/workflows/js-examples.yml
@@ -91,12 +91,22 @@ jobs:
registry-url: 'https://npm.pkg.github.com'
- name: Use Nightly package.json in Ubuntu/macOS
if: matrix.release == 'nightly' && matrix.os != 'windows-latest'
- working-directory: ./examples/javascript
- run: mv package.nightly.json package.json
+ run:
+ |
+ latest_nightly=$(./scripts/latest-nightly-version.sh npm selenium-webdriver)
+ npm install --prefix ./examples/javascript --save selenium-webdriver@npm:@seleniumhq/selenium-webdriver@$latest_nightly
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Use Nightly package.json in Windows
if: matrix.release == 'nightly' && matrix.os == 'windows-latest'
- working-directory: ./examples/javascript
- run: Move-Item -Path package.nightly.json -Destination package.json -Force
+ run:
+ |
+ $latest_nightly = ./scripts/latest-nightly-version.ps1 npm selenium-webdriver
+ npm install --prefix ./examples/javascript --save selenium-webdriver@npm:@seleniumhq/selenium-webdriver@$latest_nightly
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install Requirements
working-directory: ./examples/javascript
run: npm install
diff --git a/.github/workflows/python-examples.yml b/.github/workflows/python-examples.yml
index 3a046317f920..644c0c88dfcf 100644
--- a/.github/workflows/python-examples.yml
+++ b/.github/workflows/python-examples.yml
@@ -26,6 +26,7 @@ jobs:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
+ release: [ stable, nightly ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout GitHub repo
@@ -47,7 +48,15 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: 3.8
- - name: Install dependencies
+ - name: Install dependencies nightly
+ if: matrix.release == 'nightly'
+ working-directory: ./examples/python
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements.txt
+ pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple --force-reinstall -v selenium
+ - name: Install dependencies stable
+ if: matrix.release == 'stable'
working-directory: ./examples/python
run: |
python -m pip install --upgrade pip
diff --git a/.github/workflows/ruby-examples.yml b/.github/workflows/ruby-examples.yml
index 42f46b657724..7c94710fb9bd 100644
--- a/.github/workflows/ruby-examples.yml
+++ b/.github/workflows/ruby-examples.yml
@@ -26,6 +26,7 @@ jobs:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
+ release: [ stable, nightly ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout GitHub repo
@@ -48,7 +49,30 @@ jobs:
with:
ruby-version: 3.0
bundler-cache: true
- - name: Install Gems
+ - name: Install Gems Nightly non-Windows
+ if: matrix.release == 'nightly' && matrix.os != 'windows-latest'
+ run:
+ |
+ latest_nightly_webdriver=$(./scripts/latest-nightly-version.sh rubygems selenium-webdriver)
+ cd examples/ruby
+ bundle install
+ bundle remove selenium-webdriver
+ bundle add selenium-webdriver --version $latest_nightly_webdriver --source "https://token:${{secrets.GITHUB_TOKEN}}@rubygems.pkg.github.com/seleniumhq"
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Install Gems Nightly Windows
+ if: matrix.release == 'nightly' && matrix.os == 'windows-latest'
+ run:
+ |
+ $latest_nightly_webdriver = ./scripts/latest-nightly-version.ps1 rubygems selenium-webdriver
+ cd examples/ruby
+ bundle install
+ bundle remove selenium-webdriver
+ bundle add selenium-webdriver --version $latest_nightly_webdriver --source "https://token:${{secrets.GITHUB_TOKEN}}@rubygems.pkg.github.com/seleniumhq"
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Install Gems Stable
+ if: matrix.release == 'stable'
working-directory: ./examples/ruby
run: bundle install
- name: Set up Java
diff --git a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj
index 39d4594238fb..e84da03854bb 100644
--- a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj
+++ b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj
@@ -10,14 +10,6 @@
-
-
-
-
-
-
-
-
diff --git a/examples/java/pom.xml b/examples/java/pom.xml
index 3b98ecd71872..f3a54bcb20e0 100644
--- a/examples/java/pom.xml
+++ b/examples/java/pom.xml
@@ -13,6 +13,7 @@
11
11
UTF-8
+ 4.19.1
@@ -29,12 +30,12 @@
org.seleniumhq.selenium
selenium-java
- 4.19.1
+ ${selenium.version}
org.seleniumhq.selenium
selenium-grid
- 4.19.1
+ ${selenium.version}
org.junit.jupiter
diff --git a/examples/javascript/package.nightly.json b/examples/javascript/package.nightly.json
deleted file mode 100644
index 6759827525c0..000000000000
--- a/examples/javascript/package.nightly.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "javascript-examples",
- "version": "1.0.0",
- "scripts": {
- "test": "npx mocha test/**/*.spec.js --timeout 60000"
- },
- "author": "The Selenium project",
- "license": "Apache-2.0",
- "dependencies": {
- "assert": "2.1.0",
- "selenium-webdriver": "npm:@seleniumhq/selenium-webdriver@4.20.0-nightly202404221125"
- },
- "devDependencies": {
- "mocha": "10.4.0"
- }
-}
diff --git a/examples/ruby/Gemfile b/examples/ruby/Gemfile
index f550ccafce6a..c5560378155d 100644
--- a/examples/ruby/Gemfile
+++ b/examples/ruby/Gemfile
@@ -7,13 +7,5 @@ gem 'rake', '~> 13.0'
gem 'rspec', '~> 3.0'
gem 'rubocop', '~> 1.35'
gem 'rubocop-rspec', '~> 2.12'
-gem 'selenium-devtools', '~> 0.122'
-
-if ENV['SE_NIGHTLY']
- source 'https://rubygems.pkg.github.com/seleniumhq' do
- selenium = 'selenium-webdriver'
- gem selenium, '~> 4.19.0.nightly'
- end
-else
- gem 'selenium-webdriver', '= 4.19.0'
-end
+gem 'selenium-devtools', '= 0.123'
+gem 'selenium-webdriver', '= 4.19.0'
\ No newline at end of file
diff --git a/examples/ruby/Gemfile.lock b/examples/ruby/Gemfile.lock
index 9208b5c29cd8..fb9897e2f437 100644
--- a/examples/ruby/Gemfile.lock
+++ b/examples/ruby/Gemfile.lock
@@ -77,7 +77,7 @@ DEPENDENCIES
rspec (~> 3.0)
rubocop (~> 1.35)
rubocop-rspec (~> 2.12)
- selenium-devtools (~> 0.122)
+ selenium-devtools (= 0.123)
selenium-webdriver (= 4.19.0)
BUNDLED WITH
diff --git a/scripts/latest-nightly-version.ps1 b/scripts/latest-nightly-version.ps1
new file mode 100644
index 000000000000..4db90efa291e
--- /dev/null
+++ b/scripts/latest-nightly-version.ps1
@@ -0,0 +1,9 @@
+$PACKAGE_TYPE = $args[0]
+$PACKAGE_NAME = $args[1]
+
+$PATH_PACKAGES_API = "orgs/seleniumhq/packages/$PACKAGE_TYPE/$PACKAGE_NAME/versions"
+$ACCEPT_HEADER = "Accept: application/vnd.github+json"
+$VERSION_HEADER = "X-GitHub-Api-Version: 2022-11-28"
+
+$ghApiCommand = "gh api -H `"$ACCEPT_HEADER`" -H `"$VERSION_HEADER`" $PATH_PACKAGES_API | jq -r '.[0].name'"
+Invoke-Expression -Command $ghApiCommand
diff --git a/scripts/latest-nightly-version.sh b/scripts/latest-nightly-version.sh
new file mode 100755
index 000000000000..fb538f594ecc
--- /dev/null
+++ b/scripts/latest-nightly-version.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+set -e
+
+PACKAGE_TYPE="$1"
+PACKAGE_NAME="$2"
+
+PATH_PACKAGES_API="orgs/seleniumhq/packages/$PACKAGE_TYPE/$PACKAGE_NAME/versions"
+ACCEPT_HEADER="Accept: application/vnd.github+json"
+VERSION_HEADER="X-GitHub-Api-Version: 2022-11-28"
+
+gh api -H "$ACCEPT_HEADER" -H "$VERSION_HEADER" $PATH_PACKAGES_API | jq -r '.[0].name'