Slsqp2 #947
This file contains hidden or 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 | |
| fast_spin: | |
| name: fast, py3.12/npAny, spin | |
| 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-2025 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| submodules: recursive | |
| - name: Setup Python | |
| uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
| with: | |
| python-version: '3.12' | |
| 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 cython pybind11 pythran meson ninja pytest pytest-xdist pytest-timeout pooch spin hypothesis "click<8.3.0" | |
| python -m pip install -r requirements/openblas.txt | |
| - name: Build | |
| run: | | |
| spin build --with-scipy-openblas | |
| - name: Test | |
| run: | | |
| # test runner parallel clashes with OpenBLAS multithreading | |
| $env:OPENBLAS_NUM_THREADS=1 | |
| spin test -j4 -- --durations=25 | |
| ############################################################################# | |
| full_spin_min_numpy: | |
| name: full, py3.11/npMin, spin | |
| needs: get_commit_message | |
| if: > | |
| needs.get_commit_message.outputs.message == 1 | |
| && (github.repository == 'scipy/scipy' || github.repository == '') | |
| runs-on: windows-2025 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| submodules: recursive | |
| - name: Setup Python | |
| uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
| with: | |
| python-version: '3.11' | |
| 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.26.4 is currently our oldest supported NumPy version | |
| python -m pip install numpy==1.26.4 cython pybind11 pythran meson-python meson ninja pytest pytest-xdist pytest-timeout pooch spin hypothesis "click<8.3.0" | |
| python -m pip install -r requirements/openblas.txt | |
| - name: Build | |
| run: | | |
| spin build --with-scipy-openblas | |
| - name: Test | |
| run: | | |
| # test runner parallel clashes with OpenBLAS multithreading | |
| $env:OPENBLAS_NUM_THREADS=1 | |
| spin test -j4 --mode full -- --durations=25 --timeout=60 | |
| ############################################################################# | |
| full_build_sdist_wheel: | |
| # TODO: enable ILP64 once possible | |
| name: no pythran & sdist+wheel, full, py3.11/npPre, pip+pytest | |
| needs: get_commit_message | |
| if: > | |
| needs.get_commit_message.outputs.message == 1 | |
| && (github.repository == 'scipy/scipy' || github.repository == '') | |
| runs-on: windows-2025 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| submodules: recursive | |
| - name: Setup Python | |
| uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
| 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: | | |
| set -xe | |
| python -m pip install -r requirements/openblas.txt | |
| bash tools/wheels/cibw_before_build_win.sh . | |
| echo "PKG_CONFIG_PATH=${{ github.workspace }}" >> $GITHUB_ENV | |
| - name: pip-packages | |
| run: | | |
| python -m pip install build delvewheel cython pybind11 meson-python meson ninja pytest pytest-xdist pytest-timeout pooch hypothesis | |
| python -m pip install --pre --upgrade --timeout=60 -i https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy | |
| - name: Build | |
| shell: bash | |
| run: | | |
| python -m build --no-isolation -x -Csetup-args="-Duse-pythran=false" | |
| # Vendor openblas.dll and the DLL's it depends on into the wheel | |
| # Ignore `libsf_error_state.dll` for special function error handling; | |
| # it will be loaded using ctypes in scipy/special/__init__.py. | |
| wheel_name=$(ls dist/*.whl) | |
| openblas_dir=$(python -c"import scipy_openblas32 as sop; print(sop.get_lib_dir())") | |
| delvewheel repair --add-path $openblas_dir --no-dll libsf_error_state.dll -w wheelhouse $wheel_name | |
| python -m pip install wheelhouse/* | |
| - name: Test | |
| run: | | |
| cd $RUNNER_TEMP | |
| # run full test suite | |
| # test runner parallel clashes with OpenBLAS multithreading | |
| $env:OPENBLAS_NUM_THREADS=1 | |
| pytest --pyargs scipy | |
| ############################################################################# | |
| fast_spin_arm64: | |
| name: fast, py3.12/npAny, spin (Win-ARM64) | |
| runs-on: windows-11-arm | |
| needs: get_commit_message | |
| if: > | |
| needs.get_commit_message.outputs.message == 1 && | |
| (github.repository == 'scipy/scipy' || github.repository == '') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| submodules: recursive | |
| - name: Setup Python | |
| uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
| with: | |
| python-version: '3.12' | |
| architecture: 'arm64' | |
| - name: Set up Flang and pkgconf for ARM64 | |
| uses: ./.github/windows_arm64_steps | |
| - name: pip-packages | |
| run: | | |
| pip install numpy cython pybind11 pythran meson ninja pytest pytest-xdist pytest-timeout pooch spin hypothesis "click<8.3.0" | |
| python -m pip install -r requirements/openblas.txt | |
| - name: Build | |
| run: | | |
| $env:cc = "clang-cl" | |
| $env:cxx = "clang-cl" | |
| $env:fc = "flang-new" | |
| spin build --with-scipy-openblas | |
| - name: Test | |
| run: | | |
| $env:OPENBLAS_NUM_THREADS = 1 | |
| spin test -j2 -- --durations=25 | |
| ############################################################################# | |
| full_build_sdist_wheel_arm64: | |
| name: no pythran & sdist+wheel, full, py3.11/npPre, pip+pytest (Win-ARM64) | |
| runs-on: windows-11-arm | |
| needs: get_commit_message | |
| if: > | |
| needs.get_commit_message.outputs.message == 1 && | |
| (github.repository == 'scipy/scipy' || github.repository == '') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| submodules: recursive | |
| - name: Setup Python | |
| uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | |
| with: | |
| python-version: '3.11' | |
| architecture: 'arm64' | |
| cache: 'pip' | |
| cache-dependency-path: 'environment.yml' | |
| - name: Set up Flang and pkgconf for ARM64 | |
| uses: ./.github/windows_arm64_steps | |
| - name: Install OpenBLAS | |
| shell: bash | |
| run: | | |
| set -xe | |
| export PKG_CONFIG_PATH=$(cygpath -u "$PKG_CONFIG_PATH") | |
| export PATH="$(cygpath -u 'C:\vcpkg\installed\arm64-windows\tools\pkgconf'):$PATH" | |
| python -m pip install -r requirements/openblas.txt | |
| bash tools/wheels/cibw_before_build_win.sh . | |
| echo "PKG_CONFIG_PATH=$(cygpath -w "${{ github.workspace }}")" >> $GITHUB_ENV | |
| - name: pip-packages | |
| run: | | |
| python -m pip install build delvewheel cython pybind11 meson-python meson ninja pytest pytest-xdist pytest-timeout pooch hypothesis numpy | |
| - name: Build | |
| shell: bash | |
| run: | | |
| set -xe | |
| export CC=clang-cl | |
| export CXX=clang-cl | |
| export FC=flang-new | |
| export PATH="$(cygpath -u 'C:\vcpkg\installed\arm64-windows\tools\pkgconf'):$PATH" | |
| python -m build --no-isolation -x -Csetup-args="-Duse-pythran=false" | |
| wheel_name=$(ls dist/*.whl) | |
| openblas_dir=$(python -c"import scipy_openblas32 as sop; print(sop.get_lib_dir())") | |
| delvewheel repair --add-path "$openblas_dir" -w wheelhouse "$wheel_name" | |
| python -m pip install wheelhouse/* | |
| - name: Test | |
| shell: pwsh | |
| run: | | |
| Set-Location $env:RUNNER_TEMP | |
| $env:OPENBLAS_NUM_THREADS = 1 | |
| pytest --pyargs scipy -n2 |