4
4
push :
5
5
tags :
6
6
- ' *'
7
+ schedule :
8
+ - cron : ' 0 0 3 * *'
7
9
workflow_dispatch :
8
10
inputs :
9
11
git-ref :
@@ -14,8 +16,11 @@ concurrency:
14
16
group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
15
17
cancel-in-progress : true
16
18
17
- jobs :
19
+ defaults :
20
+ run :
21
+ shell : bash -l {0}
18
22
23
+ jobs :
19
24
native_wheels :
20
25
name : Build wheels (${{ matrix.wheel-version }}) on ${{ matrix.os }} for native and cross-compiled architecture
21
26
runs-on : ${{ matrix.os }}
46
51
TARGET : ' py313'
47
52
GLOBAL_OPTIONS : " --without-cython --with-distributable-extensions"
48
53
54
+ # We use pure python for any Windows/python greater than 3.10
49
55
exclude :
50
56
- wheel-version : ' cp311*'
51
57
os : windows-latest
56
62
57
63
steps :
58
64
- 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
59
74
- name : Build wheels
60
- uses : pypa/cibuildwheel@v2.16.5
75
+ uses : pypa/cibuildwheel@v2.21.3
61
76
with :
62
77
output-dir : dist
63
78
env :
67
82
CIBW_BUILD : ${{ matrix.wheel-version }}
68
83
CIBW_SKIP : " *-musllinux*"
69
84
CIBW_BUILD_VERBOSITY : 1
70
- CIBW_BEFORE_BUILD : pip install cython pybind11
71
85
CIBW_ENVIRONMENT : PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
72
86
- uses : actions/upload-artifact@v4
73
87
with :
@@ -110,16 +124,24 @@ jobs:
110
124
uses : docker/setup-qemu-action@v3
111
125
with :
112
126
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
113
136
- name : Build wheels
114
- uses : pypa/cibuildwheel@v2.16.5
137
+ uses : pypa/cibuildwheel@v2.21.3
115
138
with :
116
139
output-dir : dist
117
140
env :
118
141
CIBW_ARCHS_LINUX : " aarch64"
119
142
CIBW_BUILD : ${{ matrix.wheel-version }}
120
143
CIBW_SKIP : " *-musllinux*"
121
144
CIBW_BUILD_VERBOSITY : 1
122
- CIBW_BEFORE_BUILD : pip install cython pybind11
123
145
CIBW_ENVIRONMENT : PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
124
146
- uses : actions/upload-artifact@v4
125
147
with :
0 commit comments