Skip to content

Merge pull request #105 from honno/mac-nightly-fix #142

Merge pull request #105 from honno/mac-nightly-fix

Merge pull request #105 from honno/mac-nightly-fix #142

Workflow file for this run

name: multibuild
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch: null
schedule:
- cron: '0 0 * * *'
jobs:
build:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-11]
platform: [x64]
PLAT: [i686, x86_64]
INTERFACE64: ['', '1']
MB_ML_VER: ['', 2010, 2014]
include:
- os: macos-11
PLAT: arm64
INTERFACE64: '1'
platform: [x64]
- os: macos-11
PLAT: arm64
INTERFACE64: ''
platform: [x64]
- os: ubuntu-latest
PLAT: x86_64
INTERFACE64: '1'
MB_ML_LIBC: musllinux
MB_ML_VER: _1_1
platform: [x64]
- os: ubuntu-latest
PLAT: x86_64
INTERFACE64: ''
MB_ML_LIBC: musllinux
MB_ML_VER: _1_1
platform: [x64]
exclude:
- os: macos-11
PLAT: i686
- os: macos-11
MB_ML_VER: 2010
- os: macos-11
MB_ML_VER: 2014
- PLAT: i686
INTERFACE64: '1'
env:
REPO_DIR: OpenBLAS
OPENBLAS_COMMIT: "v0.3.23"
NIGHTLY: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
MACOSX_DEPLOYMENT_TARGET: 10.9
MB_PYTHON_VERSION: ${{ matrix.python-version }}
TRAVIS_PYTHON_VERSION: ${{ matrix.python-version }}
MB_ML_LIBC: ${{ matrix.MB_ML_LIBC }}
MB_ML_VER: ${{ matrix.MB_ML_VER }}
INTERFACE64: ${{ matrix.INTERFACE64 }}
BUILD_DIR: ${{ github.workspace }}
SCIPY_WHEELS_NIGHTLY_ACCESS: ${{ secrets.SCIPY_WHEELS_NIGHTLY_ACCESS }}
MULTIBUILD_WHEELS_STAGING_ACCESS: ${{ secrets.MULTIBUILD_WHEELS_STAGING_BUILD }}
PLAT: ${{ matrix.PLAT }}
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Set extra env
run: |
if [ "macos-11" == "${{ matrix.os }}" ]; then
echo "TRAVIS_OS_NAME=osx" >> $GITHUB_ENV;
echo "LDFLAGS=-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib" >> $GITHUB_ENV;
echo "LIBRARY_PATH=-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib" >> $GITHUB_ENV;
else
echo "TRAVIS_OS_NAME=${{ matrix.os }}" >> $GITHUB_ENV;
fi
echo "DOCKER_TEST_IMAGE=$(echo multibuild/xenial_${{ matrix.PLAT}})" >> $GITHUB_ENV;
- name: Print some Environment variable
run: |
echo "TRAVIS_OS_NAME: ${TRAVIS_OS_NAME}"
echo "PLAT: ${PLAT}"
echo "DOCKER_TEST_IMAGE: ${DOCKER_TEST_IMAGE}"
- name: Install VirtualEnv
run: |
python -m pip install --upgrade pip
pip install virtualenv
- name: Build and Install Wheels
run: |
set -xeo pipefail
if [[ "$PLAT" == "arm64" ]]; then
sudo xcode-select -switch /Applications/Xcode_12.5.1.app
export SDKROOT=/Applications/Xcode_12.5.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk
fi
source travis-ci/build_steps.sh
echo "------ BEFORE BUILD ---------"
before_build
echo "------ CLEAN CODE --------"
clean_code $REPO_DIR $OPENBLAS_COMMIT
echo "------ BUILD LIB --------"
if [[ "$NIGHTLY" = "true" ]]; then
build_lib "$PLAT" "$INTERFACE64" "1"
else
build_lib "$PLAT" "$INTERFACE64" "0"
fi
- uses: actions/upload-artifact@v3
with:
path: libs/openblas*.tar.gz
- name: Upload tarballs
run: |
set -ex
TOKEN=${{ secrets.MULTIBUILD_WHEELS_STAGING_ACCESS }}
if [ "$TOKEN" == "" ]; then
# The token is available when under the MacPython org, not on forks
echo "secrets.MULTIBUILD_WHEELS_STAGING_ACCESS is not defined: skipping";
else
# Pin urllib3<2 due to github.com/Anaconda-Platform/anaconda-client/issues/654
pip install "urllib3<2.0.0"
pip install git+https://github.com/Anaconda-Server/anaconda-client@1.8.0
# The first -t option refers to the token, the second is the "type"
# option to the "upload" command
args=(
-t ${TOKEN} upload
--no-progress -u multibuild-wheels-staging
-t file -p "openblas-libs"
-d "OpenBLAS for multibuild wheels"
-s "OpenBLAS for multibuild wheels"
-v "$(cd OpenBLAS && git describe --tags --abbrev=8)"
)
if [[ "$NIGHTLY" = "true" ]]; then
args+=(--force)
else
args+=(--skip)
fi
anaconda "${args[@]}" libs/openblas*.tar.gz
fi