Create an openblas wheel #24
Workflow file for this run
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: 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 |