1+ name : Select Configurations
2+
3+ on : workflow_dispatch
4+
5+ jobs :
6+ test_config :
7+ runs-on : ubuntu-latest
8+ strategy :
9+ matrix :
10+ config :
11+ - description : latest
12+ python-version : 3.13.10
13+ rf-version : 7.4.1
14+ selenium-version : 4.39.0
15+ browser : chrome
16+ - description : previous
17+ python-version : 3.12.12
18+ rf-version : 7.3.2
19+ selenium-version : 4.38.0
20+ browser : firefox
21+
22+ steps :
23+ - uses : actions/checkout@v4
24+ - name : Configuration Description
25+ run : |
26+ echo "${{ matrix.config.description }} configuration"
27+ echo "Testing with RF v${{ matrix.config.rf-version }}, Selenium v${{ matrix.config.selenium-version}}, Python v${{ matrix.config.python-version }} under ${{ matrix.config.browser }}"
28+ - name : Set up Python ${{ matrix.config.python-version }}
29+ uses : actions/setup-python@v5
30+ with :
31+ python-version : ${{ matrix.config.python-version }}
32+ - name : Setup ${{ matrix.config.browser }} browser
33+ uses : browser-actions/setup-chrome@v1
34+ with :
35+ chrome-version : 138
36+ install-dependencies : true
37+ install-chromedriver : true
38+ id : setup-chrome
39+ - run : |
40+ echo Installed chromium version: ${{ steps.setup-chrome.outputs.chrome-version }}
41+ ${{ steps.setup-chrome.outputs.chrome-path }} --version
42+ - name : Setup firefox
43+ id : setup-firefox
44+ uses : browser-actions/setup-firefox@v1
45+ with :
46+ firefox-version : latest
47+ - run : |
48+ echo Installed firefox versions: ${{ steps.setup-firefox.outputs.firefox-version }}
49+ ${{ steps.setup-firefox.outputs.firefox-path }} --version
50+ - name : Start xvfb
51+ run : |
52+ export DISPLAY=:99.0
53+ Xvfb -ac :99 -screen 0 1280x1024x16 > /dev/null 2>&1 &
54+ - name : Install dependencies
55+ run : |
56+ python -m pip install --upgrade pip
57+ pip install -r requirements-dev.txt
58+ - name : Install Seleninum v${{ matrix.config.selenium-version }}
59+ run : |
60+ pip install --upgrade selenium==${{ matrix.config.selenium-version }}
61+ - name : Install RF ${{ matrix.config.rf-version }}
62+ run : |
63+ pip install -U --pre robotframework==${{ matrix.config.rf-version }}
64+ - name : Install drivers via selenium-manager
65+ run : |
66+ SELENIUM_MANAGER_EXE=$(python -c 'from selenium.webdriver.common.selenium_manager import SeleniumManager; sm=SeleniumManager(); print(f"{str(sm._get_binary())}")')
67+ echo "$SELENIUM_MANAGER_EXE"
68+ echo "WEBDRIVERPATH=$($SELENIUM_MANAGER_EXE --browser chrome --debug | awk '/INFO[[:space:]]Driver path:/ {print $NF;exit}')" >> "$GITHUB_ENV"
69+ echo "$WEBDRIVERPATH"
70+
71+ - name : Run tests under specified config
72+ run : |
73+ xvfb-run --auto-servernum python atest/run.py --zip ${{ matrix.browser }}
74+
75+ - uses : actions/upload-artifact@v4
76+ if : failure()
77+ with :
78+ name : sl_$${{ matrix.config.python-version }}_$${{ matrix.config.rf-version }}_$${{ matrix.config.selenium-version }}_$${{ matrix.config.browser }}
79+ path : atest/zip_results
80+ overwrite : true
0 commit comments