1111 pull_request :
1212 paths :
1313 - .github/workflows/wheels.yml
14+ schedule :
15+ - cron : " 34 3 * * *"
16+
17+ permissions :
18+ actions : read
1419
1520concurrency :
16- group : wheels -${{ github.head_ref }}
21+ group : ${{ github.workflow }} -${{ github.ref }}
1722 cancel-in-progress : true
1823
1924env :
@@ -55,15 +60,15 @@ jobs:
5560 arch : auto64
5661 build : " *"
5762
58- - os : windows-2019
63+ - os : windows-latest
5964 arch : auto64
6065 build : " cp*"
6166
62- - os : windows-2019
67+ - os : windows-latest
6368 arch : auto64
64- build : " pp *"
69+ build : " {p,g}p *"
6570
66- - os : windows-2019
71+ - os : windows-latest
6772 arch : auto32
6873 build : " *"
6974
95100
96101 - uses : astral-sh/setup-uv@v6
97102
98- - uses : pypa/cibuildwheel@v2.23
103+ - uses : pypa/cibuildwheel@v3.0
99104 env :
100105 CIBW_BUILD : ${{ matrix.build }}
101106 CIBW_ARCHS : ${{ matrix.arch }}
@@ -110,9 +115,66 @@ jobs:
110115 path : wheelhouse/*.whl
111116 name : wheels-${{ strategy.job-index }}
112117
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+ - uses : pypa/cibuildwheel@v3.0
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+
113175 upload_all :
114176 name : Upload if release
115- needs : [build_wheels, build_sdist]
177+ needs : [build_wheels, build_ios_wheels, build_sdist]
116178 runs-on : ubuntu-latest
117179 if : github.event_name == 'release' && github.event.action == 'published'
118180 environment :
@@ -139,3 +201,27 @@ jobs:
139201 subject-path : " dist/boost_histogram-*"
140202
141203 - 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