44 push :
55 tags :
66 - ' *'
7+ schedule :
8+ - cron : ' 0 0 3 * *'
79 workflow_dispatch :
810 inputs :
911 git-ref :
@@ -14,8 +16,11 @@ concurrency:
1416 group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
1517 cancel-in-progress : true
1618
17- jobs :
19+ defaults :
20+ run :
21+ shell : bash -l {0}
1822
23+ jobs :
1924 native_wheels :
2025 name : Build wheels (${{ matrix.wheel-version }}) on ${{ matrix.os }} for native and cross-compiled architecture
2126 runs-on : ${{ matrix.os }}
4651 TARGET : ' py313'
4752 GLOBAL_OPTIONS : " --without-cython --with-distributable-extensions"
4853
54+ # We use pure python for any Windows/python greater than 3.10
4955 exclude :
5056 - wheel-version : ' cp311*'
5157 os : windows-latest
5662
5763 steps :
5864 - uses : actions/checkout@v4
65+ - name : Create pyproject.toml
66+ run : |
67+ # Per the cibuildwheel documentation, you can technically use
68+ # CIBW_BEFORE_BUILD to do these steps; however, as of the newest
69+ # version (2.21.3) this feature does not work. This is a hack
70+ # to make cibuildwheel recognize our pre-build requirements
71+ echo -e '[build-system]\n\nrequires = [ "setuptools", "wheel", "cython", "pybind11" ]' > $GITHUB_WORKSPACE/pyproject.toml
72+ cat $GITHUB_WORKSPACE/pyproject.toml
73+ ls -la $GITHUB_WORKSPACE
5974 - name : Build wheels
60- uses : pypa/cibuildwheel@v2.16.5
75+ uses : pypa/cibuildwheel@v2.21.3
6176 with :
6277 output-dir : dist
6378 env :
6782 CIBW_BUILD : ${{ matrix.wheel-version }}
6883 CIBW_SKIP : " *-musllinux*"
6984 CIBW_BUILD_VERBOSITY : 1
70- CIBW_BEFORE_BUILD : pip install cython pybind11
7185 CIBW_ENVIRONMENT : PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
7286 - uses : actions/upload-artifact@v4
7387 with :
@@ -110,16 +124,24 @@ jobs:
110124 uses : docker/setup-qemu-action@v3
111125 with :
112126 platforms : all
127+ - name : Create pyproject.toml
128+ run : |
129+ # Per the cibuildwheel documentation, you can technically use
130+ # CIBW_BEFORE_BUILD to do these steps; however, as of the newest
131+ # version (2.21.3) this feature does not work. This is a hack
132+ # to make cibuildwheel recognize our pre-build requirements
133+ echo -e '[build-system]\n\nrequires = [ "setuptools", "wheel", "cython", "pybind11" ]' > $GITHUB_WORKSPACE/pyproject.toml
134+ cat $GITHUB_WORKSPACE/pyproject.toml
135+ ls -la $GITHUB_WORKSPACE
113136 - name : Build wheels
114- uses : pypa/cibuildwheel@v2.16.5
137+ uses : pypa/cibuildwheel@v2.21.3
115138 with :
116139 output-dir : dist
117140 env :
118141 CIBW_ARCHS_LINUX : " aarch64"
119142 CIBW_BUILD : ${{ matrix.wheel-version }}
120143 CIBW_SKIP : " *-musllinux*"
121144 CIBW_BUILD_VERBOSITY : 1
122- CIBW_BEFORE_BUILD : pip install cython pybind11
123145 CIBW_ENVIRONMENT : PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
124146 - uses : actions/upload-artifact@v4
125147 with :
0 commit comments