name: Windows tests on: pull_request: branches: - main - maintenance/** concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true permissions: contents: read # to fetch code (actions/checkout) jobs: python64bit_openblas: name: x86-64, LP64 OpenBLAS runs-on: windows-2022 # To enable this job on a fork, comment out: if: github.repository == 'numpy/numpy' strategy: fail-fast: false matrix: compiler-pyversion: - ["MSVC", "3.11"] - ["Clang-cl", "3.14t-dev"] steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: submodules: recursive fetch-tags: true persist-credentials: false - name: Setup Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ matrix.compiler-pyversion[1] }} - name: Install build dependencies from PyPI run: | pip install -r requirements/build_requirements.txt - name: Install pkg-config run: | choco install -y --stoponfirstfailure --checksum 6004DF17818F5A6DBF19CB335CC92702 pkgconfiglite echo "PKG_CONFIG_PATH=${{ github.workspace }}/.openblas" >> $env:GITHUB_ENV - name: Install Clang-cl if: matrix.compiler-pyversion[0] == 'Clang-cl' run: | # llvm is preinstalled, but leave # this here in case we need to pin the # version at some point. #choco install llvm -y - name: Install NumPy (MSVC) if: matrix.compiler-pyversion[0] == 'MSVC' run: | pip install -r requirements/ci_requirements.txt spin build --with-scipy-openblas=32 -j2 -- --vsenv - name: Install NumPy (Clang-cl) if: matrix.compiler-pyversion[0] == 'Clang-cl' run: | "[binaries]","c = 'clang-cl'","cpp = 'clang-cl'","ar = 'llvm-lib'","c_ld = 'lld-link'","cpp_ld = 'lld-link'" | Out-File $PWD/clang-cl-build.ini -Encoding ascii pip install -r requirements/ci_requirements.txt spin build --with-scipy-openblas=32 -j2 -- --vsenv --native-file=$PWD/clang-cl-build.ini - name: Meson Log shell: bash if: ${{ failure() }} run: | cat build/meson-logs/meson-log.txt - name: Install test dependencies run: | python -m pip install -r requirements/test_requirements.txt python -m pip install threadpoolctl - name: Run test suite run: | spin test -- --timeout=600 --durations=10 python64bit_openblas_winarm64: name: arm64, LPARM64 OpenBLAS runs-on: windows-11-arm # To enable this job on a fork, comment out: if: github.repository == 'numpy/numpy' strategy: fail-fast: false matrix: compiler-pyversion: - ["MSVC", "3.11"] - ["Clang-cl", "3.14t-dev"] steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: submodules: recursive fetch-tags: true persist-credentials: false - name: Setup Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: ${{ matrix.compiler-pyversion[1] }} architecture: arm64 - name: Setup MSVC if: matrix.compiler-pyversion[0] == 'MSVC' uses: bus1/cabuild/action/msdevshell@e22aba57d6e74891d059d66501b6b5aed8123c4d # v1 with: architecture: arm64 - name: Install build dependencies from PyPI run: | pip install -r requirements/build_requirements.txt - name: Install pkg-config run: | choco install -y --stoponfirstfailure --checksum 6004DF17818F5A6DBF19CB335CC92702 pkgconfiglite echo "PKG_CONFIG_PATH=${{ github.workspace }}/.openblas" >> $env:GITHUB_ENV - name: Install Clang-cl if: matrix.compiler-pyversion[0] == 'Clang-cl' uses: ./.github/windows_arm64_steps - name: Install NumPy (MSVC) if: matrix.compiler-pyversion[0] == 'MSVC' run: | pip install -r requirements/ci_requirements.txt spin build --with-scipy-openblas=32 -j2 -- --vsenv - name: Install NumPy (Clang-cl) if: matrix.compiler-pyversion[0] == 'Clang-cl' run: | "[binaries]","c = 'clang-cl'","cpp = 'clang-cl'","ar = 'llvm-lib'","c_ld = 'lld-link'","cpp_ld = 'lld-link'" | Out-File $PWD/clang-cl-arm64.ini -Encoding ascii pip install -r requirements/ci_requirements.txt spin build --with-scipy-openblas=32 -j2 -- --vsenv --native-file=$PWD/clang-cl-arm64.ini - name: Meson Log shell: bash if: ${{ failure() }} run: | cat build/meson-logs/meson-log.txt - name: Install test dependencies run: | python -m pip install -r requirements/test_requirements.txt python -m pip install threadpoolctl - name: Run test suite run: | spin test -- --timeout=600 --durations=10 msvc_python_no_openblas: name: MSVC, ${{ matrix.architecture }} Python , no BLAS runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: windows-2022 architecture: x86 - os: windows-11-arm architecture: arm64 # To enable this job on a fork, comment out: if: github.repository == 'numpy/numpy' steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: submodules: recursive fetch-tags: true persist-credentials: false - name: Setup Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: '3.11' architecture: ${{ matrix.architecture }} - name: Setup MSVC uses: bus1/cabuild/action/msdevshell@e22aba57d6e74891d059d66501b6b5aed8123c4d # v1 with: architecture: ${{ matrix.architecture }} - name: Build and install run: | python -m pip install . -v -Ccompile-args="-j2" -Csetup-args="-Dallow-noblas=true" - name: Install test dependencies run: | python -m pip install -r requirements/test_requirements.txt - name: Run test suite (fast) run: | cd tools python -m pytest --pyargs numpy -m "not slow" -n2 --timeout=600 --durations=10