Skip to content

Create an openblas wheel #24

Create an openblas wheel

Create an openblas wheel #24

Workflow file for this run

name: Win
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
OPENBLAS_COMMIT: "c2f4bdb"
OPENBLAS_ROOT: "c:\\opt"
# Preserve working directory for calls into bash
# Without this, invoking bash will cd to the home directory
CHERE_INVOKING: "yes"
BASH_PATH: "c:\\rtools40\\usr\\bin\\bash.exe"
jobs:
build:
strategy:
matrix:
plat: ['x64', 'x86']
INTERFACE64: ['1', '0']
os: [windows-latest]
exclude:
- plat: x86
INTERFACE64: 1
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: install-rtools
run: |
# rtools 42+ does not support 32 bits builds.
choco install -y rtools --noprogress --force --version=4.0.0.20220206
- name: Set env variables
run: |
echo "START_DIR=$PWD" >> $env:GITHUB_ENV
# For interpretation of MSYSTEM, see:
# https://sourceforge.net/p/msys2/discussion/general/thread/b7dfdac8/#3939
if ( "${{ matrix.plat }}" -eq "x86") {
echo "PLAT=i686" >> $env:GITHUB_ENV
echo "MSYSTEM=MINGW32" >> $env:GITHUB_ENV
echo "LDFLAGS=-static -static-libgcc" >> $env:GITHUB_ENV
echo "BUILD_BITS=32" >> $env:GITHUB_ENV
} else {
echo "PLAT=x86_64" >> $env:GITHUB_ENV
echo "MSYSTEM=UCRT64" >> $env:GITHUB_ENV
echo "LDFLAGS=-lucrt -static -static-libgcc" >> $env:GITHUB_ENV
echo "BUILD_BITS=64" >> $env:GITHUB_ENV
}
if ( ${{ matrix.INTERFACE64 }} -eq 1 ) {
echo "INTERFACE64=1" >> $env:GITHUB_ENV
}
- name: Build
run: |
git submodule update --init --recursive
& $env:BASH_PATH -lc tools/build_openblas.sh
- name: Test
run: |
& $env:BASH_PATH -lc tools/build_gfortran.sh
echo "Static test"
.\for_test\test.exe
echo "Dynamic test"
.\for_test\test_dyn.exe
- name: Copy
run: |
cp for_test\test*.exe builds
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.7
architecture: ${{ matrix.plat }}
- name: Build wheel
shell: bash
run: |
set -xeo pipefail
python -m pip install wheel
# This will fail if there is more than one file in libs
unzip -d local/openblas builds/openblas*.zip
if [[ -d local/openblas/64 ]]; then
mv local/openblas/64/* local/openblas
rm -rf local/openblas/64
else
mv local/openblas/32/* local/openblas
rm -rf local/openblas/32
fi
mv local/openblas/bin/*.dll local/openblas/lib
rm local/openblas/lib/*.a
rm local/openblas/lib/*.exp
rm local/openblas/lib/*.def
python -m pip wheel -w dist -vv .
- name: Set up different Python
uses: actions/setup-python@v4
with:
python-version: 3.11
architecture: ${{ matrix.plat }}
- name: Test wheel
shell: bash
run: |
python -m pip install --no-index --find-links dist openblas
# XXX FIX THIS
python -m openblas || echo ignoring error
- uses: actions/upload-artifact@v3
with:
path: builds/openblas*.zip
- uses: actions/upload-artifact@v3
with:
path: dist/openblas*.whl
- uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: upload
- name: Upload
env:
ANACONDA_SCIENTIFIC_PYTHON_UPLOAD: ${{ secrets.ANACONDA_SCIENTIFIC_PYTHON_UPLOAD }}
run: |
# Pin urllib3<2 due to github.com/Anaconda-Platform/anaconda-client/issues/654
conda install "urllib3<2" anaconda-client
& $env:BASH_PATH -lc tools/upload_to_anaconda_staging.sh