WIP: do not merge #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows tests | |
on: | |
push: | |
branches: | |
- maintenance/** | |
pull_request: | |
branches: | |
- main | |
- maintenance/** | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
get_commit_message: | |
name: Get commit message | |
uses: ./.github/workflows/commit_message.yml | |
test: | |
name: cp310 (meson) fast | |
needs: get_commit_message | |
# Ensure (a) this doesn't run on forks by default, and | |
# (b) it does run with Act locally (`github` doesn't exist there) | |
if: > | |
needs.get_commit_message.outputs.message == 1 | |
&& (github.repository == 'scipy/scipy' || github.repository == '') | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
architecture: 'x64' | |
cache: 'pip' | |
cache-dependency-path: 'environment.yml' | |
- name: Install rtools (mingw-w64) | |
run: | | |
choco install rtools -y --no-progress --force --version=4.0.0.20220206 | |
echo "c:\rtools40\ucrt64\bin;" >> $env:GITHUB_PATH | |
- name: pip-packages | |
run: | | |
pip install numpy==1.22.4 cython pybind11 pythran meson ninja pytest pytest-xdist pytest-timeout pooch rich_click click doit pydevtool hypothesis "scipy-openblas32<=0.3.23.293.2" | |
- name: Build | |
run: | | |
echo "SCIPY_USE_PROPACK=1" >> $env:GITHUB_ENV | |
python dev.py build --with-scipy-openblas | |
- name: Test | |
run: | | |
python dev.py test -j2 | |
############################################################################# | |
full_dev_py_min_numpy: | |
name: cp39 (meson) full, dev.py, minimum numpy | |
needs: get_commit_message | |
if: > | |
needs.get_commit_message.outputs.message == 1 | |
&& (github.repository == 'scipy/scipy' || github.repository == '') | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pip' | |
cache-dependency-path: 'environment.yml' | |
- name: Install rtools (mingw-w64) | |
run: | | |
choco install rtools -y --no-progress --force --version=4.0.0.20220206 | |
echo "c:\rtools40\ucrt64\bin;" >> $env:GITHUB_PATH | |
- name: pip-packages | |
run: | | |
# 1.22.4 is currently the oldest numpy usable on cp3.9 according | |
# to pyproject.toml | |
python -m pip install numpy==1.22.4 cython pybind11 pythran meson-python meson ninja pytest pytest-xdist pytest-timeout pooch rich_click click doit pydevtool hypothesis "scipy-openblas32<=0.3.23.293.2" | |
- name: Build | |
run: | | |
python dev.py build --with-scipy-openblas | |
- name: Test | |
run: | | |
python dev.py test -j2 --mode full | |
############################################################################# | |
full_build_sdist_wheel: | |
# TODO: enable ILP64 once possible | |
name: cp311 (build sdist + wheel), full, no pythran | |
needs: get_commit_message | |
if: > | |
needs.get_commit_message.outputs.message == 1 | |
&& (github.repository == 'scipy/scipy' || github.repository == '') | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
cache: 'pip' | |
cache-dependency-path: 'environment.yml' | |
- name: Win_amd64 - install rtools | |
run: | | |
# mingw-w64 | |
choco install rtools -y --no-progress --force --version=4.0.0.20220206 | |
echo "c:\rtools40\ucrt64\bin;" >> $env:GITHUB_PATH | |
- name: Install OpenBLAS | |
shell: bash | |
run: | | |
# Keep this using the OpenBLAS tarballs for now, as long as we use those for wheel builds | |
set -xe | |
bash tools/wheels/cibw_before_build_win.sh . | |
echo "PKG_CONFIG_PATH=c:\opt\64\lib\pkgconfig;" >> $GITHUB_ENV | |
- name: pip-packages | |
run: | | |
python -m pip install build delvewheel numpy cython pybind11 meson-python meson ninja pytest pytest-xdist pytest-timeout pooch hypothesis | |
- name: Build | |
run: | | |
python -m build -Csetup-args="-Duse-pythran=false" | |
# Vendor openblas.dll and the DLL's it depends on into the wheel | |
$env:wheel_name=Get-ChildItem -Path dist/* -Include *.whl | |
delvewheel repair --add-path c:\opt\openblas\openblas_dll -w dist $env:wheel_name | |
python -m pip install $env:wheel_name | |
- name: Test | |
run: | | |
cd $RUNNER_TEMP | |
# run full test suite | |
pytest --pyargs scipy | |