@@ -2,15 +2,8 @@ name: CI
2
2
3
3
on :
4
4
push :
5
- branches : [ '*' ]
6
5
pull_request :
7
- branches : [ '*' ]
8
6
workflow_dispatch :
9
- schedule :
10
- # cron is kinda random, assumes 22:00 UTC is a low ebb, eastern
11
- # countries are very early morning, and US are mid-day to
12
- # mid-afternoon
13
- - cron : ' 0 22 * * 2'
14
7
15
8
jobs :
16
9
checks :
79
72
test :
80
73
runs-on : ubuntu-latest
81
74
needs : compile
82
- continue-on-error : ${{ matrix.python-version == '3.13' || matrix.python-version == 'pypy-3.11' }}
83
75
strategy :
84
76
fail-fast : false
85
77
matrix :
@@ -88,19 +80,14 @@ jobs:
88
80
- sdist
89
81
- source
90
82
python-version :
91
- - " 3.8"
92
83
- " 3.9"
93
84
- " 3.10"
94
85
- " 3.11"
95
86
- " 3.12"
96
87
- " 3.13"
97
- - " pypy-3.8"
98
- - " pypy-3.9"
99
88
- " pypy-3.10"
100
89
# - "pypy-3.11"
101
- # don't enable graal because it's slower than even pypy and
102
- # fails because oracle/graalpython#385
103
- # - "graalpy-23"
90
+ - " graalpy-24"
104
91
include :
105
92
- source : sdist
106
93
artifact : dist/*.tar.gz
@@ -116,34 +103,30 @@ jobs:
116
103
with :
117
104
python-version : ${{ matrix.python-version }}
118
105
allow-prereleases : true
119
- - name : Install test dependencies
120
- run : |
121
- python -mpip install --upgrade pip
122
- # cyaml is outright broken on pypy
123
- if ! ${{ startsWith(matrix.python-version, 'pypy-') }}; then
124
- # if binary wheels are not available for the current
125
- # package install libyaml-dev so we can install pyyaml
126
- # from source
127
- if ! pip download --only-binary pyyaml -rrequirements_dev.txt > /dev/null 2>&1; then
128
- sudo apt install libyaml-dev
129
- fi
106
+ - run : python -mpip install --upgrade pip
107
+ - run : |
108
+ # if binary wheels are not available for the current
109
+ # package install libyaml-dev so we can install pyyaml
110
+ # from source
111
+ if ! pip download --only-binary :all: pyyaml > /dev/null 2>&1; then
112
+ sudo apt install libyaml-dev
130
113
fi
131
- python -mpip install pytest pyyaml
132
-
133
- # re2 is basically impossible to install from source so don't
134
- # bother, and suppress installation failure so the test does
135
- # not fail (re2 tests will just be skipped for versions /
136
- # implementations for which google does not provide a binary
137
- # wheel)
138
- python -mpip install --only-binary :all: google-re2 || true
114
+ - run : python -mpip install pytest pyyaml
115
+ # install rs accelerator if available, ignore if not
116
+ - run : python -mpip install ua-parser-rs || true
117
+ # re2 is basically impossible to install from source so don't
118
+ # bother, and suppress installation failure so the test does
119
+ # not fail (re2 tests will just be skipped for versions /
120
+ # implementations for which google does not provide a binary
121
+ # wheel)
122
+ - run : ' python -mpip install --only-binary :all: google-re2 || true'
139
123
- name : download ${{ matrix.source }} artifact
140
124
if : matrix.artifact
141
125
uses : actions/download-artifact@v4
142
126
with :
143
127
name : ${{ matrix.source }}
144
128
path : dist/
145
129
- name : install package in environment
146
- run : |
147
- pip install ${{ matrix.artifact || '.' }}
130
+ run : pip install ${{ matrix.artifact || '.' }}
148
131
- name : run tests
149
132
run : pytest -v -Werror -Wignore::ImportWarning --doctest-glob="*.rst" -ra
0 commit comments