highs-sys 1.15.0

Rust binding for the HiGHS linear programming solver. See http://highs.dev.
Documentation
name: test-python-win

on: [push, pull_request]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        # os: [self-hosted]
        os: [windows-2022]
        python: ["3.10", "3.14"]

    steps:
      - uses: actions/checkout@v6
      - name: Install correct python version
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python }}

      - name: Install pytest
        run: python -m pip install pytest

      - name: Test python install
        run: |
          python -m pip install .
          pytest ./highspy

      - name: Test Python Examples
        run: |
         python ./examples/call_highs_from_python_highspy.py
         python ./examples/call_highs_from_python_mps.py
         python ./examples/minimal.py

  build_hipo:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        # os: [self-hosted]
        os: [windows-2022]
        python: [3.12]
    steps:
      - uses: actions/checkout@v6
      - name: Install correct python version
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python }}

      - name: Install test dependencies
        run: python -m pip install pytest

      - name: Test python install
        run: |
          python -m pip install ./highspy-extras
          python -m pip install .
          pytest
          pytest check/test_highspy_hipo.py

      - name: Test Python Examples
        run: |
         python ./examples/call_highs_from_python_highspy.py
         python ./examples/call_highs_from_python_mps.py
         python ./examples/minimal.py

  build_hipo_local:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [windows-2022]
        python: [3.12]
    steps:
      - uses: actions/checkout@v6
      - name: Install correct python version
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python }}

      - name: Install test dependencies
        run: python -m pip install pytest

      - name: Install OpenBLAS
        run: vcpkg install openblas[threads]:x64-windows-static

      - name: Install highspy-extras
        run: |
          $blas = "$env:VCPKG_INSTALLATION_ROOT/installed/x64-windows-static/lib/openblas.lib"
          Write-Host "BLAS path: $blas"
          python -m pip install ./highspy-extras `
          --config-settings=cmake.define.BUILD_OPENBLAS=OFF `
          "--config-settings=cmake.define.BLAS_LIBRARIES=$blas"

      - name: Install highspy
        run: |
          python -m pip install .
          python -c "import highspy; print(dir(highspy))"

      - name: Test python install
        run: |
          pytest highspy/tests check/test_highspy_hipo.py

      - name: Test Python Examples
        run: |
         python ./examples/call_highs_from_python_highspy.py
         python ./examples/call_highs_from_python_mps.py
         python ./examples/minimal.py