@@ -2,76 +2,67 @@ name: CI - Java
22
33on :
44 workflow_call :
5+ inputs :
6+ targets :
7+ required : false
8+ type : string
9+ default : ' '
10+ run-full-suite :
11+ required : false
12+ type : boolean
13+ default : true
514 workflow_dispatch :
615
716permissions :
817 contents : read
918
1019jobs :
11- browser-tests-windows :
12- name : Browser Tests
13- uses : ./.github/workflows/bazel.yml
14- strategy :
15- fail-fast : false
16- matrix :
17- include :
18- - os : windows
19- with :
20- name : Browser Tests (chrome, ${{ matrix.os }})
21- os : ${{ matrix.os }}
22- browser : chrome
23- # rules_jvm_external is not fully hermetic
24- # https://github.com/bazelbuild/rules_jvm_external/issues/1046
25- java-version : 17
26- run : >
27- bazel test --flaky_test_attempts 3
28- //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest
29- //java/test/org/openqa/selenium/federatedcredentialmanagement:FederatedCredentialManagementTest
30- //java/test/org/openqa/selenium/firefox:FirefoxDriverBuilderTest
31- //java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest
32- //java/test/org/openqa/selenium/remote:RemoteWebDriverBuilderTest
33- //java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest
34- //java/test/org/openqa/selenium/devtools:NetworkInterceptorRestTest
20+ filter-targets :
21+ name : Filter Targets
22+ runs-on : ubuntu-latest
23+ outputs :
24+ targets : ${{ steps.filter.outputs.targets }}
25+ steps :
26+ - name : Filter Java targets
27+ id : filter
28+ shell : bash
29+ run : |
30+ targets="${{ inputs.targets }}"
31+ filtered=()
3532
36- browser-tests-macos :
37- name : Browser Tests
38- uses : ./.github/workflows/bazel.yml
39- strategy :
40- fail-fast : false
41- matrix :
42- include :
43- - os : macos
44- with :
45- name : Browser Tests (chrome, ${{ matrix.os }})
46- os : ${{ matrix.os }}
47- browser : chrome
48- # rules_jvm_external is not fully hermetic
49- # https://github.com/bazelbuild/rules_jvm_external/issues/1046
50- java-version : 17
51- run : >
52- bazel test --flaky_test_attempts 3
53- //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest-remote
54- //java/test/org/openqa/selenium/federatedcredentialmanagement:FederatedCredentialManagementTest
55- //java/test/org/openqa/selenium/firefox:FirefoxDriverBuilderTest
56- //java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest
57- //java/test/org/openqa/selenium/remote:RemoteWebDriverBuilderTest
58- //java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest
33+ for t in $targets; do
34+ [[ "$t" == //java/* ]] && filtered+=("$t")
35+ done
5936
60- remote-tests :
61- name : Remote Tests
37+ if [ ${#filtered[@]} -eq 0 ]; then
38+ echo "targets=//java/..." >> "$GITHUB_OUTPUT"
39+ else
40+ echo "targets=${filtered[*]}" >> "$GITHUB_OUTPUT"
41+ fi
42+
43+ browser-tests :
44+ name : Browser Tests
45+ needs : filter-targets
6246 uses : ./.github/workflows/bazel.yml
6347 strategy :
6448 fail-fast : false
6549 matrix :
66- include :
67- - os : macos
50+ os : [windows, macos]
51+ browser : [chrome, firefox-beta, edge]
52+ run_type : [driver, grid]
6853 with :
69- name : Remote Tests (chrome, ${{ matrix.os }})
54+ name : Browser Tests (${{ matrix.os }} - ${{ matrix.browser }} - ${{ matrix.run_type }})
7055 os : ${{ matrix.os }}
71- browser : chrome
72- # rules_jvm_external is not fully hermetic
73- # https://github.com/bazelbuild/rules_jvm_external/issues/1046
74- java-version : 17
56+ browser : ${{ matrix.browser }}
7557 run : >
76- bazel test --flaky_test_attempts 3
77- //java/test/org/openqa/selenium/chrome:ChromeDriverFunctionalTest-remote
58+ bazel test
59+ --keep_going
60+ --build_tests_only
61+ --flaky_test_attempts 3
62+ --local_test_jobs 1
63+ --test_size_filters=large
64+ --test_tag_filters="${{ matrix.run_type == 'grid' && format('{0}-remote', matrix.browser) || format('{0},-remote', matrix.browser) }}"
65+ --pin_browsers=false
66+ --test_env=SE_FORCE_BROWSER_DOWNLOAD=true
67+ --test_env=SE_SKIP_DRIVER_IN_PATH=true
68+ ${{ needs.filter-targets.outputs.targets }}
0 commit comments