Skip to content

Commit c42f906

Browse files
committed
Update script to fetch nightly version for examples run
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 89a667a commit c42f906

10 files changed

+75
-32
lines changed

.github/workflows/dotnet-examples.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ jobs:
6161
if: matrix.release == 'nightly' && matrix.os != 'windows'
6262
run:
6363
|
64-
latest_nightly=$(./scripts/latest-nightly-version.sh nuget Selenium.WebDriver)
64+
pip install -r ./scripts/requirements.txt
65+
latest_nightly=$(python ./scripts/latest-nightly-version.py nuget Selenium.WebDriver)
66+
echo $latest_nightly
6567
dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.WebDriver --version $latest_nightly
6668
dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.Support --version $latest_nightly
6769
env:
@@ -71,7 +73,8 @@ jobs:
7173
shell: pwsh
7274
run:
7375
|
74-
$latest_nightly = ./scripts/latest-nightly-version.ps1 nuget Selenium.WebDriver
76+
pip install -r ./scripts/requirements.txt
77+
$latest_nightly = python ./scripts/latest-nightly-version.py nuget Selenium.WebDriver
7578
dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.WebDriver --version $latest_nightly
7679
dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.Support --version $latest_nightly
7780
env:

.github/workflows/java-examples.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
uses: actions/setup-java@v4
4949
with:
5050
distribution: 'temurin'
51-
java-version: 11
51+
java-version: 17
5252
- name: Run Tests Stable
5353
if: matrix.release == 'stable'
5454
uses: nick-invision/[email protected]

.github/workflows/js-examples.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ jobs:
9393
if: matrix.release == 'nightly' && matrix.os != 'windows'
9494
run:
9595
|
96-
latest_nightly=$(./scripts/latest-nightly-version.sh npm selenium-webdriver)
96+
pip install -r ./scripts/requirements.txt
97+
latest_nightly=$(python ./scripts/latest-nightly-version.py npm selenium-webdriver)
98+
echo $latest_nightly
9799
npm install --prefix ./examples/javascript --save selenium-webdriver@npm:@seleniumhq/selenium-webdriver@$latest_nightly
98100
env:
99101
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -102,7 +104,8 @@ jobs:
102104
if: matrix.release == 'nightly' && matrix.os == 'windows'
103105
run:
104106
|
105-
$latest_nightly = ./scripts/latest-nightly-version.ps1 npm selenium-webdriver
107+
pip install -r ./scripts/requirements.txt
108+
$latest_nightly = python ./scripts/latest-nightly-version.py npm selenium-webdriver
106109
npm install --prefix ./examples/javascript --save selenium-webdriver@npm:@seleniumhq/selenium-webdriver@$latest_nightly
107110
env:
108111
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/python-examples.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,24 @@ jobs:
4848
uses: actions/setup-python@v5
4949
with:
5050
python-version: 3.8
51-
- name: Install dependencies nightly
52-
if: matrix.release == 'nightly'
53-
working-directory: ./examples/python
51+
- name: Install dependencies nightly non-Windows
52+
if: matrix.release == 'nightly' && matrix.os != 'windows'
53+
run: |
54+
pip install -r ./scripts/requirements.txt
55+
latest_nightly_python=$(python ./scripts/latest-python-nightly-version.py)
56+
cd examples/python
57+
python -m pip install --upgrade pip
58+
pip install -r requirements.txt
59+
pip install --index-url https://test.pypi.org/simple/ selenium==$latest_nightly_python --extra-index-url https://pypi.org/simple/ --upgrade --force-reinstall --break-system-packages
60+
- name: Install dependencies nightly Windows
61+
if: matrix.release == 'nightly' && matrix.os == 'windows'
5462
run: |
63+
pip install -r ./scripts/requirements.txt
64+
$latest_nightly_python = python ./scripts/latest-python-nightly-version.py
65+
cd examples/python
5566
python -m pip install --upgrade pip
5667
pip install -r requirements.txt
57-
pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple --force-reinstall -v selenium
68+
pip install --index-url https://test.pypi.org/simple/ selenium==$latest_nightly_python --extra-index-url https://pypi.org/simple/ --upgrade --force-reinstall --break-system-packages
5869
- name: Install dependencies stable
5970
if: matrix.release == 'stable'
6071
working-directory: ./examples/python

.github/workflows/ruby-examples.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ jobs:
5353
if: matrix.release == 'nightly' && matrix.os != 'windows'
5454
run:
5555
|
56-
latest_nightly_webdriver=$(./scripts/latest-nightly-version.sh rubygems selenium-webdriver)
56+
pip install -r ./scripts/requirements.txt
57+
latest_nightly_webdriver=$(python ./scripts/latest-nightly-version.py rubygems selenium-webdriver)
58+
echo $latest_nightly_webdriver
5759
cd examples/ruby
5860
bundle install
5961
bundle remove selenium-webdriver
@@ -64,7 +66,8 @@ jobs:
6466
if: matrix.release == 'nightly' && matrix.os == 'windows'
6567
run:
6668
|
67-
$latest_nightly_webdriver = ./scripts/latest-nightly-version.ps1 rubygems selenium-webdriver
69+
pip install -r ./scripts/requirements.txt
70+
$latest_nightly_webdriver = python ./scripts/latest-nightly-version.py rubygems selenium-webdriver
6871
cd examples/ruby
6972
bundle install
7073
bundle remove selenium-webdriver

scripts/latest-nightly-version.ps1

Lines changed: 0 additions & 9 deletions
This file was deleted.

scripts/latest-nightly-version.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import subprocess
2+
import json
3+
import argparse
4+
5+
def get_latest_nightly_version(package_type, package_name):
6+
path_packages_api = f"orgs/seleniumhq/packages/{package_type}/{package_name}/versions"
7+
accept_header = "Accept: application/vnd.github+json"
8+
version_header = "X-GitHub-Api-Version: 2022-11-28"
9+
10+
gh_api_command = [
11+
"gh", "api", "-H", accept_header, "-H", version_header, path_packages_api
12+
]
13+
14+
result = subprocess.run(gh_api_command, capture_output=True, text=True)
15+
if result.returncode != 0:
16+
raise Exception(f"Error executing gh api command: {result.stderr}")
17+
18+
versions = json.loads(result.stdout)
19+
latest_version = versions[0]['name']
20+
return latest_version
21+
22+
if __name__ == "__main__":
23+
parser = argparse.ArgumentParser(description='Get the latest nightly version of a package.')
24+
parser.add_argument('package_type', type=str, help='The type of the package')
25+
parser.add_argument('package_name', type=str, help='The name of the package')
26+
27+
args = parser.parse_args()
28+
package_type = args.package_type
29+
package_name = args.package_name
30+
31+
print(get_latest_nightly_version(package_type, package_name))

scripts/latest-nightly-version.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import requests
2+
import json
3+
import re
4+
5+
response = requests.get("https://test.pypi.org/pypi/selenium/json")
6+
data = response.json()
7+
8+
versions = data['releases'].keys()
9+
sorted_versions = sorted(versions, key=lambda s: [int(part) if part.isdigit() else part for part in re.split(r'(\d+)', s)])
10+
latest_version = sorted_versions[-1]
11+
12+
print(latest_version)

scripts/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
requests

0 commit comments

Comments
 (0)