DEBUG: run BLAS jobs on fork #5
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: BLAS tests (Linux) | |
# This file is meant for testing different BLAS/LAPACK flavors and build | |
# options on Linux. All other yml files for Linux will only test without BLAS | |
# (mostly because that's easier and faster to build) or with the same 64-bit | |
# OpenBLAS build that is used in the wheel jobs. | |
# | |
# Jobs and their purpose: | |
# | |
# - openblas32_stable_nightly: | |
# Uses the 32-bit OpenBLAS builds, both the latest stable release | |
# and a nightly build. | |
# - openblas_no_pkgconfig_fedora: | |
# Test OpenBLAS on Fedora. Fedora doesn't ship .pc files for OpenBLAS, | |
# hence this exercises the "system dependency" detection method. | |
# - flexiblas_fedora: | |
# Tests FlexiBLAS (the default on Fedora for its own packages), via | |
# pkg-config. FlexiBLAS allows runtime switching of BLAS/LAPACK | |
# libraries, which is a useful capability (not tested in this job). | |
# - openblas_cmake: | |
# Tests whether OpenBLAS LP64 is detected correctly when only CMake | |
# and not pkg-config is installed. | |
# - netlib-debian: | |
# Installs libblas/liblapack, which in Debian contains libcblas within | |
# libblas. | |
# - netlib-split: | |
# Installs vanilla Netlib blas/lapack with separate libcblas, which is | |
# the last option tried in auto-detection. | |
# - mkl: | |
# Tests MKL installed from PyPI (because easiest/fastest, if broken) in | |
# 3 ways: both LP64 and ILP64 via pkg-config, and then using the | |
# Single Dynamic Library (SDL, or `libmkl_rt`). | |
# - blis: | |
# Simple test for LP64 via pkg-config | |
# - atlas: | |
# Simple test for LP64 via pkg-config | |
on: | |
pull_request: | |
branches: | |
- main | |
- maintenance/** | |
push: | |
branches: | |
- ci-blas | |
defaults: | |
run: | |
shell: bash | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
# openblas32_stable_nightly: | |
# openblas_no_pkgconfig_fedora: | |
# flexiblas_fedora: | |
# openblas_cmake: | |
# mkl: | |
# blis: | |
# atlas: | |
netlib-debian: | |
#if: "github.repository == 'rgommers/scipy'" | |
if: false # no cblas.pc, need to switch to Meson auto | |
runs-on: ubuntu-latest | |
name: "Debian libblas/liblapack" | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
pip install -r requirements/all.txt | |
pip install git+https://github.com/rgommers/meson.git@dependency-openblas | |
sudo apt-get install liblapack-dev pkg-config | |
- name: Build | |
run: | | |
python dev.py build -C-Dblas=blas -C-Dlapack=lapack | |
- name: Test | |
run: | | |
python dev.py test -j2 | |
netlib-split: | |
if: "github.repository == 'rgommers/scipy'" | |
runs-on: ubuntu-latest | |
container: opensuse/tumbleweed | |
name: "OpenSUSE Netlib BLAS/LAPACK" | |
steps: | |
- name: Install system dependencies | |
run: | | |
# No blas.pc on OpenSUSE as of Nov 2023, so no need to install pkg-config. | |
# If it is needed in the future, use install name `pkgconf-pkg-config` | |
zypper install -y git gcc-c++ python3-pip python3-devel blas cblas lapack | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Install PyPI dependencies | |
run: | | |
pip install --break-system-packages -r requirements/all.txt | |
pip install --break-system-packages git+https://github.com/rgommers/meson.git@dependency-openblas | |
- name: Build | |
run: | | |
python3 dev.py build -C-Dblas=blas -C-Dlapack=lapack | |
- name: Test | |
run: | | |
python3 dev.py test -j2 |