@@ -2,15 +2,8 @@ name: CI
22
33on :
44 push :
5- branches : [ '*' ]
65 pull_request :
7- branches : [ '*' ]
86 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'
147
158jobs :
169 checks :
7972 test :
8073 runs-on : ubuntu-latest
8174 needs : compile
82- continue-on-error : ${{ matrix.python-version == '3.13' || matrix.python-version == 'pypy-3.11' }}
8375 strategy :
8476 fail-fast : false
8577 matrix :
@@ -88,19 +80,14 @@ jobs:
8880 - sdist
8981 - source
9082 python-version :
91- - " 3.8"
9283 - " 3.9"
9384 - " 3.10"
9485 - " 3.11"
9586 - " 3.12"
9687 - " 3.13"
97- - " pypy-3.8"
98- - " pypy-3.9"
9988 - " pypy-3.10"
10089 # - "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"
10491 include :
10592 - source : sdist
10693 artifact : dist/*.tar.gz
@@ -116,34 +103,30 @@ jobs:
116103 with :
117104 python-version : ${{ matrix.python-version }}
118105 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
130113 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'
139123 - name : download ${{ matrix.source }} artifact
140124 if : matrix.artifact
141125 uses : actions/download-artifact@v4
142126 with :
143127 name : ${{ matrix.source }}
144128 path : dist/
145129 - name : install package in environment
146- run : |
147- pip install ${{ matrix.artifact || '.' }}
130+ run : pip install ${{ matrix.artifact || '.' }}
148131 - name : run tests
149132 run : pytest -v -Werror -Wignore::ImportWarning --doctest-glob="*.rst" -ra
0 commit comments