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 }}
24
29
matrix :
25
30
os : [ubuntu-22.04, windows-latest, macos-latest]
26
31
arch : [all]
27
- wheel-version : ['cp38*', 'cp39*', 'cp310*', 'cp311*', 'cp312*']
32
+ wheel-version : ['cp38*', 'cp39*', 'cp310*', 'cp311*', 'cp312*', 'cp313*' ]
28
33
29
34
include :
30
35
- wheel-version : ' cp38*'
@@ -42,17 +47,32 @@ jobs:
42
47
- wheel-version : ' cp312*'
43
48
TARGET : ' py312'
44
49
GLOBAL_OPTIONS : " --without-cython --with-distributable-extensions"
50
+ - wheel-version : ' cp313*'
51
+ TARGET : ' py313'
52
+ GLOBAL_OPTIONS : " --without-cython --with-distributable-extensions"
45
53
54
+ # We use pure python for any Windows/python greater than 3.10
46
55
exclude :
47
56
- wheel-version : ' cp311*'
48
57
os : windows-latest
49
58
- wheel-version : ' cp312*'
50
59
os : windows-latest
60
+ - wheel-version : ' cp313*'
61
+ os : windows-latest
51
62
52
63
steps :
53
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
54
74
- name : Build wheels
55
- uses : pypa/cibuildwheel@v2.16.5
75
+ uses : pypa/cibuildwheel@v2.21.3
56
76
with :
57
77
output-dir : dist
58
78
env :
62
82
CIBW_BUILD : ${{ matrix.wheel-version }}
63
83
CIBW_SKIP : " *-musllinux*"
64
84
CIBW_BUILD_VERBOSITY : 1
65
- CIBW_BEFORE_BUILD : pip install cython pybind11
66
85
CIBW_ENVIRONMENT : PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
67
86
- uses : actions/upload-artifact@v4
68
87
with :
77
96
matrix :
78
97
os : [ubuntu-22.04]
79
98
arch : [all]
80
- wheel-version : ['cp38*', 'cp39*', 'cp310*', 'cp311*', 'cp312*']
99
+ wheel-version : ['cp38*', 'cp39*', 'cp310*', 'cp311*', 'cp312*', 'cp313*' ]
81
100
82
101
include :
83
102
- wheel-version : ' cp38*'
@@ -95,23 +114,34 @@ jobs:
95
114
- wheel-version : ' cp312*'
96
115
TARGET : ' py312'
97
116
GLOBAL_OPTIONS : " --without-cython --with-distributable-extensions"
117
+ - wheel-version : ' cp313*'
118
+ TARGET : ' py313'
119
+ GLOBAL_OPTIONS : " --without-cython --with-distributable-extensions"
98
120
steps :
99
121
- uses : actions/checkout@v4
100
122
- name : Set up QEMU
101
123
if : runner.os == 'Linux'
102
124
uses : docker/setup-qemu-action@v3
103
125
with :
104
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
105
136
- name : Build wheels
106
- uses : pypa/cibuildwheel@v2.16.5
137
+ uses : pypa/cibuildwheel@v2.21.3
107
138
with :
108
139
output-dir : dist
109
140
env :
110
141
CIBW_ARCHS_LINUX : " aarch64"
111
142
CIBW_BUILD : ${{ matrix.wheel-version }}
112
143
CIBW_SKIP : " *-musllinux*"
113
144
CIBW_BUILD_VERBOSITY : 1
114
- CIBW_BEFORE_BUILD : pip install cython pybind11
115
145
CIBW_ENVIRONMENT : PYOMO_SETUP_ARGS="${{ matrix.GLOBAL_OPTIONS }}"
116
146
- uses : actions/upload-artifact@v4
117
147
with :
0 commit comments