-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
145 lines (134 loc) · 4.45 KB
/
Copy pathci-python.yml
File metadata and controls
145 lines (134 loc) · 4.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
name: CI - Python
on:
workflow_call:
workflow_dispatch:
permissions:
contents: read
jobs:
build:
name: Build
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
uses: ./.github/workflows/bazel.yml
with:
name: Build
run: |
bazel build //py:selenium-wheel //py:selenium-sdist
lint-ruff:
name: Lint (ruff)
uses: ./.github/workflows/bazel.yml
with:
name: Lint (ruff)
run: bazel run //py:ruff-check -- --no-fix
lint-mypy:
name: Lint (mypy)
uses: ./.github/workflows/bazel.yml
with:
name: Lint (mypy)
run: bazel run //py:mypy
lint-docs:
name: Lint (docs)
uses: ./.github/workflows/bazel.yml
with:
name: Lint (docs)
run: |
bazel run //py:generate-api-listing
bazel run //py:sphinx-autogen
bazel build //py:docs
unit-tests:
name: Unit Tests
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
uses: ./.github/workflows/bazel.yml
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.14']
os: [ubuntu, macos, windows]
with:
name: Unit Tests (${{ matrix.python-version }}, ${{ matrix.os }})
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
run: bazel test --local_test_jobs 1 //py:unit
remote-tests:
name: Remote Tests
uses: ./.github/workflows/bazel.yml
with:
name: Integration Tests Remote
needs-display: true
rerun-with-debug: true
download-artifact-name: targets
run: >
[ -s bazel-targets-py.txt ] || echo //py/... > bazel-targets-py.txt;
{ echo "tests(//py:test-remote) intersect set("; cat bazel-targets-py.txt; echo ")"; } > query.txt;
bazel query --query_file=query.txt --output=label > remote-targets.txt;
./scripts/github-actions/bazel-test-if-targets.sh
--keep_going
--flaky_test_attempts 3
--local_test_jobs 1
--target_pattern_file=remote-targets.txt
remote-bidi-tests:
name: Remote BiDi Tests
uses: ./.github/workflows/bazel.yml
with:
name: Integration Tests Remote BiDi
needs-display: true
rerun-with-debug: true
download-artifact-name: targets
run: >
[ -s bazel-targets-py.txt ] || echo //py/... > bazel-targets-py.txt;
{ echo "tests(//py:test-remote-bidi) intersect set("; cat bazel-targets-py.txt; echo ")"; } > query.txt;
bazel query --query_file=query.txt --output=label > remote-bidi-targets.txt;
./scripts/github-actions/bazel-test-if-targets.sh
--keep_going
--flaky_test_attempts 3
--local_test_jobs 1
--target_pattern_file=remote-bidi-targets.txt
browser-tests:
name: Browser Tests
uses: ./.github/workflows/bazel.yml
strategy:
fail-fast: false
matrix:
browser: [chrome, firefox, chrome-bidi, edge]
os: [windows]
include:
- browser: safari
os: macos
with:
name: Integration Tests (${{ matrix.browser }})
needs-display: true
os: ${{ matrix.os }}
rerun-with-debug: true
download-artifact-name: targets
run: >
[ -s bazel-targets-py.txt ] || echo //py/... > bazel-targets-py.txt;
{ echo "tests(//py:test-${{ matrix.browser }}) intersect set("; cat bazel-targets-py.txt; echo ")"; } > query.txt;
bazel query --query_file=query.txt --output=label > browser-targets.txt;
./scripts/github-actions/bazel-test-if-targets.sh
--keep_going
--flaky_test_attempts 3
--local_test_jobs 1
--skip_incompatible_explicit_targets
--target_pattern_file=browser-targets.txt
selenium-manager-tests:
name: Selenium Manager Tests
uses: ./.github/workflows/bazel.yml
strategy:
fail-fast: false
matrix:
os: [ubuntu, windows, macos]
with:
name: Integration Tests Selenium Manager (${{ matrix.os }})
needs-display: true
os: ${{ matrix.os }}
rerun-with-debug: true
download-artifact-name: targets
run: >
[ -s bazel-targets-py.txt ] || echo //py/... > bazel-targets-py.txt;
./scripts/github-actions/bazel-test-if-targets.sh
--local_test_jobs 1
--flaky_test_attempts 3
--pin_browsers=false
--build_tests_only
--skip_incompatible_explicit_targets
--test_tag_filters=se-manager
--target_pattern_file=bazel-targets-py.txt