Skip to content

BLD: Rework to have more control over highs build #7

BLD: Rework to have more control over highs build

BLD: Rework to have more control over highs build #7

Workflow file for this run

name: Windows tests
on:
push:
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_dev_py_fail_slow:
name: fail slow, fast, py3.12/npAny, dev.py
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 == 'HaoZeke/scipy' || github.repository == '')
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/[email protected]
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v5
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 pytest-fail-slow pooch rich_click click doit pydevtool hypothesis
python -m pip install -r requirements/openblas.txt
- name: Build
run: |
python dev.py build --with-scipy-openblas
- name: Test
run: |
# test runner parallel clashes with OpenBLAS multithreading
$env:OPENBLAS_NUM_THREADS=1
python dev.py test -j2 -- --durations=0 --durations-min=0.25 --fail-slow=1.0
#############################################################################
full_dev_py_min_numpy_fail_slow:
name: fail slow, full, py3.10/npMin, dev.py
needs: get_commit_message
if: >
needs.get_commit_message.outputs.message == 1
&& (github.repository == 'HaoZeke/scipy' || github.repository == '')
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/[email protected]
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
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.23.5 is currently the oldest numpy usable on cp3.10 according
# to pyproject.toml
python -m pip install numpy==1.23.5 cython pybind11 pythran meson-python meson ninja pytest pytest-xdist pytest-timeout pytest-fail-slow pooch rich_click click doit pydevtool hypothesis
python -m pip install -r requirements/openblas.txt
- name: Build
run: |
python dev.py build --with-scipy-openblas
- name: Test
run: |
# test runner parallel clashes with OpenBLAS multithreading
$env:OPENBLAS_NUM_THREADS=1
python dev.py test -j2 --mode full -- --durations=0 --durations-min=1.0 --timeout=60 --fail-slow=5.0
#############################################################################
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 == 'HaoZeke/scipy' || github.repository == '')
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/[email protected]
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v5
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