@@ -20,7 +20,7 @@ defaults:
2020
2121jobs:
2222 build_wheels:
23- name: Build wheel for ${{ matrix.python }}- ${{ matrix.buildplat[1] }}
23+ name: Build wheels for ${{ matrix.buildplat[1] }}
2424 runs-on: ${{ matrix.buildplat[0] }}
2525 strategy:
2626 # Ensure that a wheel builder finishes even if another fails
@@ -29,43 +29,25 @@ jobs:
2929 # Github Actions doesn't support pairing matrix values together, let's improvise
3030 # https://github.com/github/feedback/discussions/7835#discussioncomment-1769026
3131 buildplat:
32- - [ubuntu-20.04, manylinux_x86_64]
33- - [ubuntu-20.04, manylinux_aarch64]
34- - [ubuntu-20.04, manylinux_ppc64le]
35- - [ubuntu-20.04, manylinux_s390x]
36- - [ubuntu-20.04, manylinux_i686]
37- - [windows-2019, win_amd64]
38- - [windows-2019, win32]
39- python: ["cp37", "cp38", "cp39", "cp310", "cp311", "cp312"]
40- include:
41- - buildplat: [macos-11, macosx_*]
42- python: "cp37"
43- - buildplat: [macos-11, macosx_*]
44- python: "cp38"
45- - buildplat: [macos-11, macosx_*]
46- python: "cp39"
47- - buildplat: [macos-14, macosx_*]
48- python: "cp310"
49- - buildplat: [macos-14, macosx_*]
50- python: "cp311"
51- - buildplat: [macos-14, macosx_*]
52- python: "cp312"
32+ - [ubuntu-20.04, "manylinux_x86_64", "cp3*-manylinux_x86_64"]
33+ - [ubuntu-20.04, "manylinux_aarch64", "cp3*-manylinux_aarch64"]
34+ - [ubuntu-20.04, "manylinux_ppc64le", "cp3*-manylinux_ppc64le"]
35+ - [ubuntu-20.04, "manylinux_s390x", "cp3*-manylinux_s390x"]
36+ - [ubuntu-20.04, "manylinux_i686", "cp3*-manylinux_i686"]
37+ - [windows-2019, "win_amd6", "cp3*-win_amd64"]
38+ - [windows-2019, "win32", "cp3*-win32"]
39+ - [macos-14, "macos", "cp*-macosx_*"]
5340
5441 steps:
5542 - name: Checkout pymongo
5643 uses: actions/checkout@v4
5744 with:
5845 fetch-depth: 0
5946
60- - name: Set up python version
61- run: |
62- export PYTHON_VERSION=$(sed 's/^cp3/3./' <<< ${{ matrix.python }} )
63- echo "PYTHON_VERSION=$PYTHON_VERSION" >> $GITHUB_ENV
64-
6547 - uses: actions/setup-python@v5
6648 with:
67- python-version: ${{env.PYTHON_VERSION}}
6849 cache: 'pip'
50+ python-version: 3.8
6951 cache-dependency-path: 'pyproject.toml'
7052 allow-prereleases: true
7153
@@ -79,75 +61,37 @@ jobs:
7961 # Note: the default manylinux is manylinux2014
8062 run: |
8163 python -m pip install -U pip
82- python -m pip install "cibuildwheel>=2.4 ,<3"
64+ python -m pip install "cibuildwheel>=2.17 ,<3"
8365
84- - name: Build wheel
85- if: ${{ matrix.buildplat[0] != 'macos-14' }}
66+ - name: Build wheels
8667 env:
87- CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
88- MACOS_TEST_SKIP: "*arm64"
68+ CIBW_BUILD: ${{ matrix.buildplat[2] }}
8969 run: python -m cibuildwheel --output-dir wheelhouse
9070
91- - name: Build wheel on M1
92- if: ${{ matrix.buildplat[0 ] == 'macos-14 ' }}
71+ - name: Build manylinux1 wheels
72+ if: ${{ matrix.buildplat[1 ] == 'manylinux_x86_64' || matrix.buildplat[1] == 'manylinux_i686 ' }}
9373 env:
94- CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
74+ CIBW_MANYLINUX_X86_64_IMAGE: manylinux1
75+ CIBW_MANYLINUX_I686_IMAGE: manylinux1
76+ CIBW_BUILD: "cp37-${{ matrix.buildplat[1] }} cp38-${{ matrix.buildplat[1] }} cp39-${{ matrix.buildplat[1] }}"
9577 run: python -m cibuildwheel --output-dir wheelhouse
9678
79+ - name: Assert all versions in wheelhouse
80+ if: ${{ ! startsWith(matrix.buildplat[1], 'macos') }}
81+ run: |
82+ ls wheelhouse/*cp37*.whl
83+ ls wheelhouse/*cp38*.whl
84+ ls wheelhouse/*cp39*.whl
85+ ls wheelhouse/*cp310*.whl
86+ ls wheelhouse/*cp311*.whl
87+ ls wheelhouse/*cp312*.whl
88+
9789 - uses: actions/upload-artifact@v4
9890 with:
99- name: wheel-${{ matrix.python }}-${{ startsWith(matrix.buildplat[1], 'macosx') && 'macosx' || matrix. buildplat[1] }}
91+ name: wheel-${{ matrix.buildplat[1] }}
10092 path: ./wheelhouse/*.whl
10193 if-no-files-found: error
10294
103- build_manylinux1_wheels:
104- runs-on: ubuntu-latest
105- strategy:
106- # Ensure that a wheel builder finishes even if another fails
107- fail-fast: false
108- matrix:
109- python: ["cp37", "cp38", "cp39"]
110- steps:
111- - name: Checkout pymongo
112- uses: actions/checkout@v4
113- with:
114- fetch-depth: 0
115-
116- - name: Set up python version
117- run: |
118- export PYTHON_VERSION=$(sed 's/^cp3/3./' <<< ${{ matrix.python }} )
119- echo "PYTHON_VERSION=$PYTHON_VERSION" >> $GITHUB_ENV
120-
121- - uses: actions/setup-python@v5
122- with:
123- python-version: ${{env.PYTHON_VERSION}}
124- cache: 'pip'
125- cache-dependency-path: 'pyproject.toml'
126- allow-prereleases: true
127-
128- - name: Install cibuildwheel
129- run: |
130- python -m pip install -U pip
131- python -m pip install "cibuildwheel>=2.4,<3"
132-
133- - name: Build manylinux_x86_64
134- env:
135- CIBW_BUILD: ${{ matrix.python }}-manylinux_x86_64
136- CIBW_MANYLINUX_X86_64_IMAGE: manylinux1
137- run: python -m cibuildwheel --output-dir wheelhouse
138-
139- - name: Build manylinux_i686
140- env:
141- CIBW_BUILD: ${{ matrix.python }}-manylinux_i686
142- CIBW_MANYLINUX_I686_IMAGE: manylinux1
143- run: python -m cibuildwheel --output-dir wheelhouse
144-
145- - uses: actions/upload-artifact@v4
146- with:
147- name: wheel-${{ matrix.python }}-manylinux1
148- path: ./wheelhouse/*.whl
149- if-no-files-found: error
150-
15195 make_sdist:
15296 name: Make SDist
15397 runs-on: macos-13
@@ -180,7 +124,7 @@ jobs:
180124
181125 collect_dist:
182126 runs-on: ubuntu-latest
183- needs: [build_wheels, build_manylinux1_wheels, make_sdist]
127+ needs: [build_wheels, make_sdist]
184128 name: Download Wheels
185129 steps:
186130 - name: Download all workflow run artifacts
0 commit comments