@@ -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 :
84578558      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/[email protected]  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- 82+     - name : Build and Test wheels 
83+ 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+ 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- 103+ 
104+     - name : Upload openblas to artifacts 
105+ 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/[email protected]  163111      with :
0 commit comments