-
Notifications
You must be signed in to change notification settings - Fork 14
141 lines (123 loc) · 3.59 KB
/
wheels.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: wheels
on:
workflow_dispatch:
release:
types:
- published
jobs:
make_sdist:
name: Make SDist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Build SDist
run: pipx run build --sdist
- uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz
build_wheels:
name: "Build wheel: ${{ matrix.python }}, ${{ matrix.arch }} on ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python: [38, 39, 310, 311, 312]
os: [ubuntu-latest, macos-13]
arch: [auto64]
include:
- python: 38
os: ubuntu-latest
arch: aarch64
- python: 39
os: ubuntu-latest
arch: aarch64
- python: 310
os: ubuntu-latest
arch: aarch64
- python: 311
os: ubuntu-latest
arch: aarch64
- python: 312
os: ubuntu-latest
arch: aarch64
steps:
- uses: docker/setup-qemu-action@v3
if: matrix.arch != 'auto64'
with:
platforms: arm64
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install compiler tools on macOS
if: runner.os == 'macOS'
run: |
brew install make automake swig mpfr boost
export PATH="/usr/local/opt/make/libexec/gnubin:$PATH"
- name: Clone gmp
if: runner.os == 'macOS'
uses: actions/checkout@v4
with:
repository: gmp-mirror/gmp-6.3
path: gmp-6.3
- name: Build gmp from source for MACOSX_DEPLOYMENT_TARGET
if: runner.os == 'macOS'
env:
MACOSX_DEPLOYMENT_TARGET: "10.9"
working-directory: gmp-6.3
run: |
brew install texinfo
autoreconf -i -f
./configure --help
./configure \
--prefix=$(brew --prefix) \
--enable-cxx
touch ./doc/version.texi
make --jobs
make install
- uses: pypa/[email protected]
env:
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BUILD: cp${{ matrix.python }}-*
CIBW_BUILD_VERBOSITY: 2
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ matrix.python }}-${{ matrix.arch }}
path: wheelhouse/*.whl
test_sdist:
needs: [make_sdist]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true
- name: Install extra deps on Linux
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libboost-dev swig autoconf libtool
- name: test sdist
run: python -m pip install dist/*.tar.gz
upload_all:
needs: [build_wheels, make_sdist]
runs-on: ubuntu-latest
# Restrict to the environment set for the trusted publisher
environment:
name: publish
# Mandatory for publishing with a trusted publisher
# c.f. https://docs.pypi.org/trusted-publishers/using-a-publisher/
permissions:
id-token: write
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1
with:
print-hash: true