@@ -54,7 +54,6 @@ on: # yamllint disable-line rule:truthy
5454 - all
5555 - Linux
5656 - Linux-aarch64
57- - Linux-ppc64le
5857 - Linux-x86_64
5958 - macOS
6059 - macOS-arm64
@@ -76,11 +75,11 @@ jobs:
7675 shell : python
7776 name : ' setup build matrix'
7877 run : |
78+ # setup build matrix # "
7979 keys = ("os", "arch", "runner")
8080 rows = [
81- ("Linux", "aarch64", "ubuntu-22.04"),
82- ("Linux", "ppc64le", "ubuntu-22.04"),
83- ("Linux", "x86_64", "ubuntu-22.04"),
81+ ("Linux", "aarch64", "ubuntu-24.04-arm"),
82+ ("Linux", "x86_64", "ubuntu-24.04"),
8483 ("macOS", "arm64", "macos-14"),
8584 ("macOS", "x86_64", "macos-13"),
8685 ]
9392 import os, json
9493 with open(os.getenv("GITHUB_OUTPUT"), "w") as out:
9594 print(f"matrix={json.dumps(matrix)}", file=out)
95+ # "
9696
9797 build :
9898 needs : setup
@@ -113,16 +113,21 @@ jobs:
113113 if : ${{ runner.os == 'macOS' }}
114114 name : setup-macOS
115115 run : |
116+ # set macOS deployment target
117+ case $(uname -m) in
118+ arm64) echo MACOSX_DEPLOYMENT_TARGET=11.0 >> $GITHUB_ENV ;;
119+ x86_64) echo MACOSX_DEPLOYMENT_TARGET=10.15 >> $GITHUB_ENV ;;
120+ esac
116121 # create gfortran symlink
117122 cd $(brew --prefix)/bin
118123 gfortran=$(ls gfortran-* | sort | head -n 1)
119124 sudo ln -s $gfortran gfortran
125+ # unlink libevent
126+ brew unlink libevent || true
120127 # install autotools
121128 brew install autoconf
122129 brew install automake
123130 brew install libtool
124- # unlink libevent
125- brew unlink libevent || true
126131 # install uv
127132 brew install uv
128133
@@ -131,20 +136,19 @@ jobs:
131136 with :
132137 python-version : 3
133138
134- - id : setup-qemu
135- if : ${{ runner.os == 'Linux' }}
136- uses : docker/setup-qemu-action@v3
137- with :
138- platforms : all
139-
140139 - id : bootstrap
141140 run : ./bootstrap.sh
142141
143142 - id : source-date-epoch
144143 run : |
145- SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)
144+ read -r SOURCE_DATE_EPOCH < source-date-epoch || true
145+ SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH:-$(git log -1 --pretty=%ct)}
146146 echo SOURCE_DATE_EPOCH=$SOURCE_DATE_EPOCH >> $GITHUB_ENV
147- echo $(git log -1 --pretty=%ci) [timestamp=$SOURCE_DATE_EPOCH]
147+ test $(uname) = Darwin && (echo ZERO_AR_DATE=1 >> $GITHUB_ENV)
148+ echo [SOURCE_DATE_EPOCH=$SOURCE_DATE_EPOCH] $(
149+ date -u -d @$SOURCE_DATE_EPOCH 2>/dev/null ||
150+ date -u -r $SOURCE_DATE_EPOCH 2>/dev/null )
151+ working-directory : package/source
148152
149153 - id : build
150154@@ -153,12 +157,16 @@ jobs:
153157 package-dir : package
154158 output-dir : wheelhouse
155159 env :
160+ CIBW_MANYLINUX_AARCH64_IMAGE : manylinux_2_28
161+ CIBW_MANYLINUX_X86_64_IMAGE : manylinux_2_28
156162 CIBW_BUILD_FRONTEND : " build[uv]"
157163 CIBW_BUILD : " cp312-*"
158164 CIBW_SKIP : " *musllinux*"
159165 CIBW_ARCHS : " ${{ matrix.arch }}"
160166 CIBW_BEFORE_ALL : >-
161167 bash {project}/cibw-build-mpi.sh
168+ CIBW_BEFORE_BUILD : >-
169+ bash {project}/cibw-patch-cmd.sh
162170 CIBW_TEST_COMMAND : >-
163171 bash {project}/cibw-check-mpi.sh
164172 CIBW_ENVIRONMENT_PASS : >-
@@ -171,12 +179,6 @@ jobs:
171179 SOURCE="$PWD/package/source"
172180 WORKDIR="$PWD/package/workdir"
173181 DESTDIR="$PWD/package/install"
174- CIBW_REPAIR_WHEEL_COMMAND_MACOS : >
175- delocate-wheel
176- --ignore-missing-dependencies
177- --exclude libmpi --exclude libpmpi
178- --require-archs {delocate_archs}
179- -w {dest_dir} -v {wheel}
180182
181183 - id : sha256sum
182184 run : |
@@ -190,8 +192,24 @@ jobs:
190192 - id : upload
191193 uses : actions/upload-artifact@v4
192194 with :
193- name : wheel-${{ inputs.mpiname }}-${{ matrix.os }}-${{ matrix.arch }}
195+ name : " wheel-${{ inputs.mpiname }}-\
196+ ${{ inputs.version || 'latest' }}-\
197+ ${{ matrix.os }}-${{ matrix.arch }}"
194198 path : wheelhouse/*.whl
195199
196200 - id : check
197- run : ./check-wheel.sh wheelhouse
201+ run : ./wheel-check.sh wheelhouse
202+
203+ - id : test
204+ run : |
205+ # ./wheel-test.sh
206+ test $(uname) = Linux && runner=(
207+ docker run
208+ -e MPINAME=${{ inputs.mpiname }}
209+ -v $(pwd):/${{ github.workspace }}
210+ -w ${{ github.workspace }}
211+ --platform linux/${{
212+ matrix.arch == 'aarch64' && 'arm64' ||
213+ matrix.arch == 'x86_64' && 'amd64'
214+ }} python:3)
215+ ${runner[@]:-} ./wheel-test.sh wheelhouse
0 commit comments