@@ -23,141 +23,89 @@ jobs:
2323 strategy :
2424 fail-fast : false
2525 matrix :
26- os : [ubuntu-latest, macos-latest]
27- PLAT : [i686, x86_64]
28- INTERFACE64 : ['0', '1']
29- MB_ML_VER : ['2014']
30- MB_ML_LIBC : ['manylinux']
3126 include :
32- - os : macos-latest
33- PLAT : arm64
34- INTERFACE64 : ' 1'
35- - os : macos-latest
36- PLAT : arm64
37- INTERFACE64 : ' 0'
38- - os : ubuntu-latest
39- PLAT : x86_64
40- INTERFACE64 : ' 1'
41- MB_ML_LIBC : musllinux
42- MB_ML_VER : _1_2
43- - os : ubuntu-latest
44- PLAT : x86_64
45- INTERFACE64 : ' 0'
46- MB_ML_LIBC : musllinux
47- MB_ML_VER : _1_2
48-
49- - os : ubuntu-24.04-arm
50- PLAT : aarch64
51- INTERFACE64 : ' 0'
52- MB_ML_VER : ' 2014'
53- - os : ubuntu-24.04-arm
54- PLAT : aarch64
55- INTERFACE64 : ' 1'
56- MB_ML_VER : ' 2014'
57- - os : ubuntu-24.04-arm
58- PLAT : aarch64
59- INTERFACE64 : ' 0'
60- MB_ML_LIBC : musllinux
61- MB_ML_VER : _1_2
62- - os : ubuntu-24.04-arm
63- PLAT : aarch64
64- INTERFACE64 : ' 1'
65- MB_ML_LIBC : musllinux
66- MB_ML_VER : _1_2
67-
68- exclude :
69- - PLAT : i686
70- os : macos-latest
71- - PLAT : i686
72- INTERFACE64 : ' 1'
27+ - { os: ubuntu-latest, PLAT: i686, INTERFACE64: '0', MB_ML_VER: '2014', MB_ML_LIBC: manylinux}
28+
29+ - { os: ubuntu-latest, PLAT: x86_64, INTERFACE64: '0', MB_ML_VER: '2014', MB_ML_LIBC: manylinux}
30+ - { os: ubuntu-latest, PLAT: x86_64, INTERFACE64: '1', MB_ML_VER: '2014', MB_ML_LIBC: manylinux}
31+
32+ - { os: macos-latest, PLAT: x86_64, INTERFACE64: '0', MB_ML_LIBC: macosx}
33+ - { os: macos-latest, PLAT: x86_64, INTERFACE64: '1', MB_ML_LIBC: macosx}
34+
35+ - { os: macos-latest, PLAT: arm64, INTERFACE64: '0', MB_ML_LIBC: macosx}
36+ - { os: macos-latest, PLAT: arm64, INTERFACE64: '1', MB_ML_LIBC: macosx}
37+
38+ - { os: ubuntu-latest, PLAT: x86_64, INTERFACE64: '0', MB_ML_VER: '_1_2', MB_ML_LIBC: musllinux}
39+ - { os: ubuntu-latest, PLAT: x86_64, INTERFACE64: '1', MB_ML_VER: '_1_2', MB_ML_LIBC: musllinux}
40+
41+ - { os: ubuntu-24.04-arm, PLAT: aarch64, INTERFACE64: '0', MB_ML_VER: '2014', MB_ML_LIBC: manylinux}
42+ - { os: ubuntu-24.04-arm, PLAT: aarch64, INTERFACE64: '1', MB_ML_VER: '2014', MB_ML_LIBC: manylinux}
43+
44+ - { os: ubuntu-24.04-arm, PLAT: aarch64, INTERFACE64: '0', MB_ML_VER: '_1_2', MB_ML_LIBC: musllinux}
45+ - { os: ubuntu-24.04-arm, PLAT: aarch64, INTERFACE64: '1', MB_ML_VER: '_1_2', MB_ML_LIBC: musllinux}
46+
7347 env :
7448 NIGHTLY : ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
75- MB_PYTHON_VERSION : ${{ matrix.python-version }}
76- TRAVIS_PYTHON_VERSION : ${{ matrix.python-version }}
7749 MB_ML_LIBC : ${{ matrix.MB_ML_LIBC }}
7850 MB_ML_VER : ${{ matrix.MB_ML_VER }}
7951 INTERFACE64 : ${{ matrix.INTERFACE64 }}
8052 BUILD_DIR : ${{ github.workspace }}
8153 PLAT : ${{ matrix.PLAT }}
54+ OS-NAME : ${{ matrix.os }}
8255
8356 steps :
8457 - uses : actions/checkout@v4.1.1
8558 with :
8659 submodules : recursive
8760 fetch-depth : 0
88- - name : Set up Python
89- uses : actions/setup-python@v5
90- with :
91- python-version : 3.9
61+
9262 - name : Set extra env
9363 run : |
9464 echo "DOCKER_TEST_IMAGE=$(echo multibuild/xenial_${{ matrix.PLAT}})" >> $GITHUB_ENV;
9565
9666 - uses : maxim-lobanov/setup-xcode@v1.6.0
97- if : ${{ matrix.os == 'macos-latest' }}
67+ if : ${{ contains( matrix.os, 'macos') }}
9868 with :
99- xcode-version : ' 15.4 '
69+ xcode-version : ' 16.0 '
10070
10171 - name : Print some Environment variable
10272 run : |
10373 echo "PLAT: ${PLAT}"
10474 echo "DOCKER_TEST_IMAGE: ${DOCKER_TEST_IMAGE}"
105- - name : Install VirtualEnv
106- run : |
107- python3 -m pip install --upgrade pip
108- pip install virtualenv
109- - name : Build OpenBLAS
110- run : |
111- set -xeo pipefail
112- source tools/build_steps.sh
113- echo "------ BEFORE BUILD ---------"
114- before_build
115- if [[ "$NIGHTLY" = "true" ]]; then
116- echo "------ CLEAN CODE --------"
117- clean_code $REPO_DIR develop
118- echo "------ BUILD LIB --------"
119- build_lib "$PLAT" "$INTERFACE64" "1"
120- else
121- echo "------ CLEAN CODE --------"
122- clean_code $REPO_DIR $OPENBLAS_COMMIT
123- echo "------ BUILD LIB --------"
124- build_lib "$PLAT" "$INTERFACE64" "0"
125- fi
12675
12776 # - name: Setup tmate session
12877 # if: ${{ failure() }}
12978 # uses: mxschmitt/action-tmate@v3
13079 # with:
13180 # limit-access-to-actor: true
13281
133- - name : Build and test wheel
134- run : |
135- if [[ "$NIGHTLY" = "true" ]]; then
136- # Set the pyproject.toml version: convert v0.3.24-30-g138ed79f to 0.3.34.30
137- version=$(cd OpenBLAS && git describe --tags --abbrev=8 | sed -e "s/^v\(.*\)-g.*/\1/" | sed -e "s/-/./g")
138- sed -e "s/^version = .*/version = \"${version}\"/" -i.bak pyproject.toml
139- fi
140- if [ "macos-latest" == "${{ matrix.os }}" ]; then
141- source tools/build_wheel.sh
142- else
143- libc=${MB_ML_LIBC:-manylinux}
144- docker_image=quay.io/pypa/${libc}${MB_ML_VER}_${PLAT}
145- docker run --rm -e INTERFACE64="${INTERFACE64}" \
146- -e MB_ML_LIBC="${MB_ML_LIBC}" \
147- -v $(pwd):/openblas $docker_image \
148- /bin/bash -xe /openblas/tools/build_wheel.sh
149- sudo chmod -R a+w dist
150- fi
151-
152- - uses : actions/upload-artifact@v4.3.0
82+ - name : Build and Test wheels
83+ uses : pypa/cibuildwheel@v3.1.4
84+ with :
85+ output-dir : dist
86+ env :
87+ CIBW_ARCHS : ${{matrix.PLAT}}
88+ CIBW_BUILD_VERBOSITY : 1
89+ CIBW_BUILD : " cp39-${{ matrix.MB_ML_LIBC }}_${{matrix.PLAT}}"
90+
91+ CIBW_MANYLINUX_I686_IMAGE : ${{ matrix.MB_ML_LIBC }}${{matrix.MB_ML_VER}}
92+ CIBW_MANYLINUX_X86_64_IMAGE : ${{ matrix.MB_ML_LIBC }}${{matrix.MB_ML_VER}}
93+ CIBW_MUSLLINUX_X86_64_IMAGE : ${{ matrix.MB_ML_LIBC }}${{matrix.MB_ML_VER}}
94+ CIBW_MANYLINUX_AARCH64_IMAGE : ${{ matrix.MB_ML_LIBC }}${{matrix.MB_ML_VER}}
95+ CIBW_MUSLLINUX_AARCH64_IMAGE : ${{ matrix.MB_ML_LIBC }}${{matrix.MB_ML_VER}}
96+
97+ - name : Upload wheels to artifacts
98+ uses : actions/upload-artifact@v4.3.0
15399 with :
154100 name : wheels-${{ matrix.os }}-${{ matrix.PLAT }}-${{ matrix.INTERFACE64 }}-${{ matrix.MB_ML_LIBC }}-${{ matrix.MB_ML_VER }}
155101 path : dist/scipy_openblas*.whl
156102
157- - uses : actions/upload-artifact@v4.3.0
103+
104+ - name : Upload openblas to artifacts
105+ uses : actions/upload-artifact@v4.3.0
158106 with :
159107 name : openblas-${{ matrix.os }}-${{ matrix.PLAT }}-${{ matrix.INTERFACE64 }}-${{ matrix.MB_ML_LIBC }}-${{ matrix.MB_ML_VER }}
160- path : libs /openblas*.tar.gz
108+ path : dist /openblas*.tar.gz
161109
162110 - uses : conda-incubator/setup-miniconda@v3.2.0
163111 with :
0 commit comments