11
11
pull_request :
12
12
paths :
13
13
- .github/workflows/wheels.yml
14
+ schedule :
15
+ - cron : " 34 3 * * *"
16
+
17
+ permissions :
18
+ actions : read
14
19
15
20
concurrency :
16
- group : wheels -${{ github.head_ref }}
21
+ group : ${{ github.workflow }} -${{ github.ref }}
17
22
cancel-in-progress : true
18
23
19
24
env :
@@ -55,15 +60,15 @@ jobs:
55
60
arch : auto64
56
61
build : " *"
57
62
58
- - os : windows-2019
63
+ - os : windows-latest
59
64
arch : auto64
60
65
build : " cp*"
61
66
62
- - os : windows-2019
67
+ - os : windows-latest
63
68
arch : auto64
64
- build : " pp *"
69
+ build : " {p,g}p *"
65
70
66
- - os : windows-2019
71
+ - os : windows-latest
67
72
arch : auto32
68
73
build : " *"
69
74
95
100
96
101
- uses : astral-sh/setup-uv@v6
97
102
98
- - uses : pypa/cibuildwheel@v2.23
103
+ - uses : pypa/cibuildwheel@v3.0
99
104
env :
100
105
CIBW_BUILD : ${{ matrix.build }}
101
106
CIBW_ARCHS : ${{ matrix.arch }}
@@ -110,9 +115,66 @@ jobs:
110
115
path : wheelhouse/*.whl
111
116
name : wheels-${{ strategy.job-index }}
112
117
118
+ build_ios_wheels :
119
+ name : iOS ${{ matrix.runs-on }}
120
+ runs-on : ${{ matrix.runs-on }}
121
+ strategy :
122
+ fail-fast : false
123
+ matrix :
124
+ runs-on : [macos-latest, macos-13]
125
+
126
+ steps :
127
+ - uses : actions/checkout@v4
128
+ with :
129
+ fetch-depth : 0
130
+ submodules : true
131
+
132
+ - run : brew upgrade cmake
133
+
134
+
135
+ env :
136
+ CIBW_PLATFORM : ios
137
+
138
+ - name : Verify clean directory
139
+ run : git diff --exit-code
140
+ shell : bash
141
+
142
+ - name : Upload wheels
143
+ uses : actions/upload-artifact@v4
144
+ with :
145
+ path : wheelhouse/*.whl
146
+ name : wheels-ios-${{ matrix.runs-on }}
147
+
148
+ # build_android_wheels:
149
+ # name: Android ${{ matrix.runs-on }}
150
+ # runs-on: ${{ matrix.runs-on }}
151
+ # strategy:
152
+ # fail-fast: false
153
+ # matrix:
154
+ # runs-on: [ubuntu-latest, macos-latest]
155
+ # steps:
156
+ # - uses: actions/checkout@v4
157
+ # with:
158
+ # fetch-depth: 0
159
+ # submodules: true
160
+ #
161
+ # - uses: mhsmith/cibuildwheel@android
162
+ # env:
163
+ # CIBW_PLATFORM: android
164
+ #
165
+ # - name: Verify clean directory
166
+ # run: git diff --exit-code
167
+ # shell: bash
168
+ #
169
+ # - name: Upload wheels
170
+ # uses: actions/upload-artifact@v4
171
+ # with:
172
+ # path: wheelhouse/*.whl
173
+ # name: wheels-android-${{ matrix.runs-on }}
174
+
113
175
upload_all :
114
176
name : Upload if release
115
- needs : [build_wheels, build_sdist]
177
+ needs : [build_wheels, build_ios_wheels, build_sdist]
116
178
runs-on : ubuntu-latest
117
179
if : github.event_name == 'release' && github.event.action == 'published'
118
180
environment :
@@ -139,3 +201,27 @@ jobs:
139
201
subject-path : " dist/boost_histogram-*"
140
202
141
203
- uses : pypa/gh-action-pypi-publish@release/v1
204
+
205
+ upload_nightly_wheels :
206
+ name : Upload nightly wheels to Anaconda Cloud
207
+ if : |
208
+ (github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') &&
209
+ !github.event.repository.fork &&
210
+ github.ref == 'refs/heads/develop'
211
+ needs : [build_wheels]
212
+ runs-on : ubuntu-latest
213
+ steps :
214
+ - uses : actions/download-artifact@v4
215
+ with :
216
+ pattern : wheels-*
217
+ merge-multiple : true
218
+ path : dist
219
+
220
+ - name : List all files
221
+ run : ls -lh dist
222
+
223
+ - name : Upload wheel to Anaconda Cloud as nightly
224
+ uses : scientific-python/upload-nightly-action@b36e8c0c10dbcfd2e05bf95f17ef8c14fd708dbf # 0.6.2
225
+ with :
226
+ artifacts_path : dist
227
+ anaconda_nightly_upload_token : ${{ secrets.ANACONDA_ORG_UPLOAD_TOKEN }}
0 commit comments