Skip to content

Commit ac3c835

Browse files
rgommersclaude
andcommitted
DEBUG: run only the ASan job, on pushes to ci-fix-asan
So the reworked ASan job can be exercised on a fork without opening a PR, and without spending fork CI minutes on the other three jobs. Revert before merging. Note there is no `if: github.repository == ...` guard on this workflow to comment out - unlike emscripten.yml and wheel_tests_and_release.yml, tests.yml has none, so all of its jobs already run on forks. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 0dde950 commit ac3c835

1 file changed

Lines changed: 1 addition & 219 deletions

File tree

.github/workflows/tests.yml

Lines changed: 1 addition & 219 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
branches:
66
- v1.**
7+
- ci-fix-asan # DEBUG: remove before merging
78
pull_request:
89
branches:
910
- main
@@ -25,225 +26,6 @@ env:
2526
CYTHON_MIN: cython==3.1.3
2627

2728
jobs:
28-
test_pywavelets_linux:
29-
name: ${{ matrix.runs-on }}-cp${{ matrix.python-version }}-${{ matrix.OPTIONS_NAME }}
30-
runs-on: ${{ matrix.runs-on }}
31-
strategy:
32-
# Ensure that a wheel builder finishes even if another fails
33-
fail-fast: false
34-
matrix:
35-
runs-on: [ubuntu-latest] # Arm runner tested separately, see below
36-
python-version: ["3.12", "3.14"]
37-
MINIMUM_REQUIREMENTS: [0]
38-
USE_SDIST: [0]
39-
REFGUIDE_CHECK: [1]
40-
PIP_FLAGS: [""]
41-
OPTIONS_NAME: ["default"]
42-
include:
43-
# Linux arm64
44-
- runs-on: ubuntu-22.04-arm
45-
python-version: "3.14"
46-
# Linux amd64
47-
- runs-on: ubuntu-latest
48-
python-version: "3.12"
49-
MINIMUM_REQUIREMENTS: 1
50-
OPTIONS_NAME: "minimum-req"
51-
- runs-on: ubuntu-latest
52-
python-version: "3.12"
53-
- runs-on: ubuntu-latest
54-
python-version: "3.14"
55-
USE_SDIST: 1
56-
OPTIONS_NAME: "install-from-sdist"
57-
- runs-on: ubuntu-latest
58-
python-version: "3.14"
59-
PIP_FLAGS: "--pre"
60-
OPTIONS_NAME: "pre-releases"
61-
- runs-on: ubuntu-latest
62-
python-version: "3.14"
63-
OPTIONS_NAME: "editable-install"
64-
steps:
65-
- uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v4.1.2
66-
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v5.5.0
67-
with:
68-
python-version: ${{ matrix.python-version}}
69-
allow-prereleases: true
70-
71-
- name: Build package
72-
env:
73-
VERSION: ${{ matrix.python-version }}
74-
MINIMUM_REQUIREMENTS: ${{ matrix.MINIMUM_REQUIREMENTS }}
75-
PIP_FLAGS: ${{ matrix.PIP_FLAGS }}
76-
USE_SDIST: ${{ matrix.USE_SDIST }}
77-
REFGUIDE_CHECK: ${{ matrix.REFGUIDE_CHECK }}
78-
OPTIONS_NAME: ${{ matrix.OPTIONS_NAME }}
79-
run: |
80-
uname -a
81-
df -h
82-
ulimit -a
83-
# ccache -s
84-
which python
85-
python --version
86-
# sudo apt-get install libatlas-base-dev
87-
pip install --upgrade pip build
88-
# Set numpy version first, other packages link against it
89-
if [ "${MINIMUM_REQUIREMENTS}" == "1" ]; then
90-
pip install ${CYTHON_MIN}
91-
pip install ${NUMPY_MIN}
92-
else
93-
pip install ${PIP_FLAGS} cython
94-
pip install ${PIP_FLAGS} numpy
95-
fi
96-
pip install ${PIP_FLAGS} matplotlib pytest
97-
98-
set -o pipefail
99-
if [ "${USE_SDIST}" == "1" ]; then
100-
python -m build --sdist
101-
pip install dist/pyw*.tar.gz -v
102-
elif [ "${REFGUIDE_CHECK}" == "1" ]; then
103-
pip install sphinx numpydoc scipy-doctest
104-
pip install . -v
105-
else
106-
pip install . -v
107-
fi
108-
109-
if [ "${OPTIONS_NAME}" == "editable-install" ]; then
110-
pip install meson-python>=0.16.0 matplotlib pytest ninja
111-
pip install -e . --no-build-isolation
112-
fi
113-
114-
- name: Run tests
115-
env:
116-
USE_SDIST: ${{ matrix.USE_SDIST }}
117-
REFGUIDE_CHECK: ${{ matrix.REFGUIDE_CHECK }}
118-
OPTIONS_NAME: ${{ matrix.OPTIONS_NAME }}
119-
run: |
120-
set -o pipefail
121-
# Move out of source directory to avoid finding local pywt
122-
pushd demo
123-
if [ "${USE_SDIST}" == "1" ]; then
124-
pytest --pyargs pywt
125-
python ../pywt/tests/test_doc.py
126-
elif [ "${REFGUIDE_CHECK}" == "1" ]; then
127-
# doctest docstrings
128-
pytest --doctest-modules --pyargs pywt -v --doctest-collect=api
129-
# Run Sphinx HTML docs builder, converting warnings to errors
130-
# Move back out of demo/ to root directory
131-
cd ..
132-
pip install -r util/readthedocs/requirements.txt
133-
sphinx-build -b html -W --keep-going -d _build/doctrees doc/source doc/build
134-
else
135-
pytest --pyargs pywt
136-
fi
137-
popd
138-
139-
test_pywavelets_linux_free_threaded:
140-
name: linux-cp${{ matrix.python-version }}-default
141-
runs-on: ubuntu-latest
142-
strategy:
143-
fail-fast: false
144-
matrix:
145-
python-version: ["3.14t"]
146-
steps:
147-
- uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v4.1.2
148-
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v5.5.0
149-
with:
150-
python-version: ${{ matrix.python-version}}
151-
152-
- name: Build package
153-
run: |
154-
pip install --upgrade pip build
155-
pip install cython numpy meson-python ninja pytest
156-
pip install . -v --no-build-isolation
157-
158-
- name: Run tests
159-
run: |
160-
# Move out of source directory to avoid finding local pywt
161-
cd demo
162-
pytest --pyargs pywt
163-
164-
test_pywavelets_macos:
165-
name: macos-cp${{ matrix.python-version }}-${{ matrix.OPTIONS_NAME }}
166-
runs-on: macos-latest
167-
strategy:
168-
# Ensure that a wheel builder finishes even if another fails
169-
fail-fast: false
170-
matrix:
171-
python-version: ["3.12", "3.14"]
172-
MINIMUM_REQUIREMENTS: [0]
173-
USE_SDIST: [0]
174-
REFGUIDE_CHECK: [0]
175-
PIP_FLAGS: [""]
176-
OPTIONS_NAME: ["default"]
177-
include:
178-
- python-version: "3.12"
179-
MINIMUM_REQUIREMENTS: 1
180-
OPTIONS_NAME: "osx-minimum-req"
181-
- python-version: "3.14"
182-
PIP_FLAGS: "--pre"
183-
OPTIONS_NAME: "pre-releases"
184-
185-
steps:
186-
- uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v4.1.2
187-
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v5.5.0
188-
with:
189-
python-version: ${{ matrix.python-version}}
190-
allow-prereleases: true
191-
192-
- name: Build package
193-
env:
194-
VERSION: ${{ matrix.python-version }}
195-
MINIMUM_REQUIREMENTS: ${{ matrix.MINIMUM_REQUIREMENTS }}
196-
PIP_FLAGS: ${{ matrix.PIP_FLAGS }}
197-
USE_SDIST: ${{ matrix.USE_SDIST }}
198-
REFGUIDE_CHECK: ${{ matrix.REFGUIDE_CHECK }}
199-
CC: /usr/bin/clang
200-
CXX: /usr/bin/clang++
201-
run: |
202-
uname -a
203-
df -h
204-
ulimit -a
205-
which python
206-
python --version
207-
pip install --upgrade pip build
208-
# Set numpy version first, other packages link against it
209-
if [ "${MINIMUM_REQUIREMENTS}" == "1" ]; then
210-
pip install ${CYTHON_MIN} ${NUMPY_MIN}
211-
else
212-
pip install ${PIP_FLAGS} cython numpy
213-
fi
214-
pip install ${PIP_FLAGS} matplotlib pytest
215-
216-
set -o pipefail
217-
if [ "${USE_SDIST}" == "1" ]; then
218-
python -m build --sdist
219-
pip install pywavelets* -v
220-
elif [ "${REFGUIDE_CHECK}" == "1" ]; then
221-
pip install sphinx numpydoc scipy-doctest
222-
pip install . -v
223-
else
224-
pip install . -v
225-
fi
226-
227-
- name: Run tests
228-
env:
229-
PIP_FLAGS: ${{ matrix.PIP_FLAGS }}
230-
USE_SDIST: ${{ matrix.USE_SDIST }}
231-
REFGUIDE_CHECK: ${{ matrix.REFGUIDE_CHECK }}
232-
run: |
233-
# Move out of source directory to avoid finding local pywt
234-
pushd demo
235-
if [ "${USE_SDIST}" == "1" ]; then
236-
pytest --pyargs pywt
237-
python ../pywt/tests/test_doc.py
238-
elif [ "${REFGUIDE_CHECK}" == "1" ]; then
239-
# doctests docstrings
240-
pytest --doctest-modules --doctest-only-doctests=true --pyargs pywt -v --doctest-collect=api
241-
pytest --doctest-modules --doctest-only-doctests=true --pyargs pywt.data -v
242-
else
243-
pytest --pyargs pywt
244-
fi
245-
popd
246-
24729
clang_ASan_UBSan:
24830
name: Test under ASan and UBSan
24931
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)