Skip to content

Commit 0ecce10

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

10 files changed

+70
-29
lines changed

.github/workflows/dotnet-examples.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ 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)
6566
dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.WebDriver --version $latest_nightly
6667
dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.Support --version $latest_nightly
6768
env:
@@ -71,7 +72,8 @@ jobs:
7172
shell: pwsh
7273
run:
7374
|
74-
$latest_nightly = ./scripts/latest-nightly-version.ps1 nuget Selenium.WebDriver
75+
pip install -r ./scripts/requirements.txt
76+
$latest_nightly = python ./scripts/latest-nightly-version.py nuget Selenium.WebDriver
7577
dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.WebDriver --version $latest_nightly
7678
dotnet add examples/dotnet/SeleniumDocs/SeleniumDocs.csproj package Selenium.Support --version $latest_nightly
7779
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: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ 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)
9798
npm install --prefix ./examples/javascript --save selenium-webdriver@npm:@seleniumhq/selenium-webdriver@$latest_nightly
9899
env:
99100
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -102,7 +103,8 @@ jobs:
102103
if: matrix.release == 'nightly' && matrix.os == 'windows'
103104
run:
104105
|
105-
$latest_nightly = ./scripts/latest-nightly-version.ps1 npm selenium-webdriver
106+
pip install -r ./scripts/requirements.txt
107+
$latest_nightly = python ./scripts/latest-nightly-version.py npm selenium-webdriver
106108
npm install --prefix ./examples/javascript --save selenium-webdriver@npm:@seleniumhq/selenium-webdriver@$latest_nightly
107109
env:
108110
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/python-examples.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,25 @@ jobs:
4848
uses: actions/setup-python@v5
4949
with:
5050
python-version: 3.8
51+
- name: Get nightly version 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+
echo "LATEST_NIGHTLY_PYTHON=$latest_nightly_python" >> $GITHUB_ENV
57+
- name: Get nightly version Windows
58+
if: matrix.release == 'nightly' && matrix.os == 'windows'
59+
run: |
60+
pip install -r ./scripts/requirements.txt
61+
$latest_nightly_python = python ./scripts/latest-python-nightly-version.py
62+
echo "LATEST_NIGHTLY_PYTHON=$latest_nightly_python" >> $GITHUB_ENV
5163
- name: Install dependencies nightly
5264
if: matrix.release == 'nightly'
5365
working-directory: ./examples/python
5466
run: |
5567
python -m pip install --upgrade pip
5668
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
69+
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
5870
- name: Install dependencies stable
5971
if: matrix.release == 'stable'
6072
working-directory: ./examples/python

.github/workflows/ruby-examples.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ 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)
5758
cd examples/ruby
5859
bundle install
5960
bundle remove selenium-webdriver
@@ -64,7 +65,8 @@ jobs:
6465
if: matrix.release == 'nightly' && matrix.os == 'windows'
6566
run:
6667
|
67-
$latest_nightly_webdriver = ./scripts/latest-nightly-version.ps1 rubygems selenium-webdriver
68+
pip install -r ./scripts/requirements.txt
69+
$latest_nightly_webdriver = python ./scripts/latest-nightly-version.py rubygems selenium-webdriver
6870
cd examples/ruby
6971
bundle install
7072
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)