-
-
Notifications
You must be signed in to change notification settings - Fork 65
180 lines (150 loc) · 4.5 KB
/
packages.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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
---
name: Packages
on:
- workflow_dispatch
jobs:
build-sdist:
name: Build sdist package
runs-on: ubuntu-24.04
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Build sdist
run: python setup.py sdist
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: sdist
path: ./dist/*
build-wheel:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-latest, macos-latest]
pyver:
- cp38
- cp39
- cp310
- cp311
- cp312
- cp313
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{matrix.pyver}}-*
CIBW_ARCHS_LINUX: auto
CIBW_ARCHS_MACOS: auto universal2
CIBW_ARCHS_WINDOWS: auto
CIBW_TEST_EXTRAS: test
CIBW_TEST_COMMAND: pytest --color=yes -m 'not embedded' {project}/tests
# Passing a space in a param is a b*tch on windows.
# However embedded tests are skipped anyway there.
CIBW_TEST_COMMAND_WINDOWS: pytest --color=yes {project}/tests
# musllinux tests fail with some pid mixup
# cross-build macos images can't be tested on this runner.
CIBW_TEST_SKIP: >-
*-musllinux_*
*-macosx_universal2:arm64
pp*-macosx_*
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheel-${{ matrix.pyver }}-${{ matrix.os }}
path: ./wheelhouse/*.whl
build-cross-wheel:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
pyver:
- cp38
- cp39
- cp310
- cp311
- cp312
- cp313
arch: [aarch64, ppc64le]
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Set up QEMU for multi-arch build
uses: docker/setup-qemu-action@v3
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{matrix.pyver}}-*
CIBW_ARCHS: ${{matrix.arch}}
# Tests mostly fail because of some confusion with the python interpreter
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheel-${{ matrix.pyver }}-${{ matrix.arch }}
path: ./wheelhouse/*.whl
build-wheel-pypy:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-latest, macos-latest]
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: pp*
CIBW_SKIP: pp37-*
CIBW_TEST_EXTRAS: test
CIBW_TEST_COMMAND: pytest --color=yes -m 'not embedded' {project}/tests
# Passing a space in a param is a b*tch on windows.
# However embedded tests are skipped anyway there.
CIBW_TEST_COMMAND_WINDOWS: pytest --color=yes {project}/tests
# musllinux tests fail with some pid mixup
# cross-build macos images can't be tested on this runner.
CIBW_TEST_SKIP: >-
*-musllinux_*
*-macosx_universal2:arm64
pp*-macosx_*
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheels-pp-${{ matrix.os }}
path: ./wheelhouse/*.whl
build-cross-wheel-pypy:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Set up QEMU for multi-arch build
uses: docker/setup-qemu-action@v3
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: pp*
CIBW_SKIP: pp37-*
# Tests mostly fail because of some confusion with the python interpreter
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheels-pp-cross
path: ./wheelhouse/*.whl
merge:
runs-on: ubuntu-latest
needs:
- build-sdist:
- build-wheel:
- build-cross-wheel:
- build-wheel-pypy:
- build-cross-wheel-pypy:
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
with:
name: psycopg-binary-artifact
delete-merged: true