@@ -17,28 +17,26 @@ jobs:
1717 include :
1818 - python-version : ' 3.9'
1919 manylinux_image : ' quay.io/pypa/manylinux2014_x86_64'
20- plat : ' manylinux2014_x86_64'
2120 - python-version : ' 3.10'
2221 manylinux_image : ' quay.io/pypa/manylinux2014_x86_64'
23- plat : ' manylinux2014_x86_64'
2422 - python-version : ' 3.11'
2523 manylinux_image : ' quay.io/pypa/manylinux2014_x86_64'
26- plat : ' manylinux2014_x86_64'
2724 - python-version : ' 3.12'
2825 manylinux_image : ' quay.io/pypa/manylinux2014_x86_64'
29- plat : ' manylinux2014_x86_64'
3026 - python-version : ' 3.13'
3127 manylinux_image : ' quay.io/pypa/manylinux2014_x86_64'
32- plat : ' manylinux2014_x86_64'
3328 - python-version : ' 3.14'
3429 manylinux_image : ' quay.io/pypa/manylinux2014_x86_64'
35- plat : ' manylinux2014_x86_64'
3630 - runner-python : ' 3.13'
3731 python-version : ' 3.14t'
38- manylinux_image : ' quay.io/pypa/manylinux_2_31_x86_64'
39- plat : ' manylinux_2_31_x86_64'
32+ manylinux_image : ' ghcr.io/pypa/manylinux/manylinux_2_31_x86_64'
4033 runs-on : ubuntu-latest
4134 steps :
35+ - name : Set up Python (runner)
36+ uses : actions/setup-python@v4
37+ with :
38+ python-version : ${{ matrix.runner-python || matrix.python-version }}
39+
4240 - name : Check out repository
4341 uses : actions/checkout@v4.1.7
4442 with :
@@ -48,21 +46,40 @@ jobs:
4846 run : chmod +x io/build.sh
4947
5048 - name : Build Wheels
51- run : >
52- docker run --rm
53- -e PLAT=${{ matrix.plat }}
54- -e PACKAGE_NAME=orso
55- -e PYTHON_VERSION=${{ matrix.python-version }}
56- -v `pwd`:/io
57- --workdir /io
58- ${{ matrix.manylinux_image }}
59- io/build.sh
49+ run : |
50+ set -euo pipefail
51+
52+ DESIRED_IMAGE="${{ matrix.manylinux_image }}"
53+ echo "Attempting to pull ${DESIRED_IMAGE}..."
54+
55+ if docker pull "${DESIRED_IMAGE}" 2>/dev/null; then
56+ IMAGE="${DESIRED_IMAGE}"
57+ else
58+ echo "Failed to pull ${DESIRED_IMAGE}; trying fallback..."
59+ if docker pull quay.io/pypa/manylinux2014_x86_64 2>/dev/null; then
60+ IMAGE=quay.io/pypa/manylinux2014_x86_64
61+ else
62+ echo "ERROR: no manylinux image available. Tried: ${DESIRED_IMAGE}, quay.io/pypa/manylinux2014_x86_64"
63+ exit 125
64+ fi
65+ fi
66+
67+ echo "Using container image: ${IMAGE}"
68+
69+ docker run --rm \
70+ -e PLAT=manylinux2014_x86_64 \
71+ -e PACKAGE_NAME=orso \
72+ -e PYTHON_VERSION=${{ matrix.python-version }} \
73+ -v `pwd`:/io \
74+ --workdir /io \
75+ "${IMAGE}" \
76+ io/build.sh
6077
6178 - name : Archive Wheels
6279 uses : actions/upload-artifact@v4
6380 with :
6481 name : dist-linux-${{ matrix.python-version }}
65- path : io/dist/*${{ matrix.plat }} *.whl
82+ path : io/dist/*manylinux2014_x86_64 *.whl
6683
6784 build-macos :
6885 runs-on : macos-latest
@@ -184,7 +201,12 @@ jobs:
184201 with :
185202 name : dist-linux-3.14t
186203 path : dist-linux-3.14t
187- - run : mv -v dist-linux-3.14t/* dist/
204+ - run : |
205+ if [ -d dist-linux-3.14t ]; then
206+ mv -v dist-linux-3.14t/* dist/
207+ else
208+ echo "dist-linux-3.14t artifact not found; skipping"
209+ fi
188210
189211 - name : Stage macos 3.9
190212 uses : actions/download-artifact@v4.1.7
@@ -233,7 +255,12 @@ jobs:
233255 with :
234256 name : dist-macos-3.14t
235257 path : dist-macos-3.14t
236- - run : mv -v dist-macos-3.14t/* dist/
258+ - run : |
259+ if [ -d dist-macos-3.14t ]; then
260+ mv -v dist-macos-3.14t/* dist/
261+ else
262+ echo "dist-macos-3.14t artifact not found; skipping"
263+ fi
237264
238265 - name : Publish distribution 📦 to PyPI
239266 uses : pypa/gh-action-pypi-publish@release/v1
0 commit comments