-
Notifications
You must be signed in to change notification settings - Fork 6
153 lines (153 loc) · 4.21 KB
/
Copy pathbuild_wheel.yml
File metadata and controls
153 lines (153 loc) · 4.21 KB
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
142
143
144
145
146
147
148
149
150
151
152
153
# Build Python wheels from source using cibuildwheel.
name: build_wheels
on:
pull_request:
push:
release:
types: [published]
# Allow trigger via API
workflow_dispatch:
permissions: read-all
jobs:
build_sdist:
name: Build sdist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install build dependencies
run: |
sudo apt update
sudo apt -y install autoconf automake autopoint build-essential git libtool pkg-config python3-build
- name: Prepare build
run: |
./synclibs.sh
./autogen.sh
./configure
make sources >/dev/null
- name: Build sdist
run: |
python -m build --sdist
- uses: actions/upload-artifact@v7
with:
name: cibw-sdist
path: dist/*.tar.gz
build_wheels_linux:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-24.04
- os: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
- name: Install build dependencies
run: |
sudo apt -y install autoconf automake autopoint build-essential git libtool pkg-config
- name: Prepare build
run: |
./synclibs.sh
./autogen.sh
./configure
make sources >/dev/null
- name: Build Python wheels
uses: pypa/cibuildwheel@v3.4.1
env:
CIBW_TEST_COMMAND: python tests/runtests.py
CIBW_TEST_SOURCES: tests
with:
package-dir: .
output-dir: dist
- uses: actions/upload-artifact@v7
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: dist/*.whl
build_wheels_macos:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: macos-26
- os: macos-26-intel
steps:
- uses: actions/checkout@v6
- name: Install build dependencies
run: |
brew update -q
brew install -q autoconf automake gettext gnu-sed libtool pkg-config || true
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
- name: Prepare build
run: |
./synclibs.sh
./autogen.sh
./configure
make sources >/dev/null
- name: Build Python wheels
uses: pypa/cibuildwheel@v3.4.1
env:
CIBW_TEST_COMMAND: python tests/runtests.py
CIBW_TEST_SOURCES: tests
with:
package-dir: .
output-dir: dist
- uses: actions/upload-artifact@v7
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: dist/*.whl
build_wheels_windows:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: windows-11-arm
- os: windows-latest
steps:
- uses: actions/checkout@v6
- name: Prepare build
run: |
.\synclibs.ps1
.\autogen.ps1
- name: Build Python wheels
uses: pypa/cibuildwheel@v3.4.1
env:
CIBW_TEST_COMMAND: python tests/runtests.py
CIBW_TEST_SOURCES: tests
with:
package-dir: .
output-dir: dist
- uses: actions/upload-artifact@v7
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: dist/*.whl
upload_test_pypi:
needs: [build_sdist, build_wheels_linux, build_wheels_macos, build_wheels_windows]
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- uses: actions/download-artifact@v8
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
upload_pypi:
needs: [upload_test_pypi]
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- uses: actions/download-artifact@v8
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1