@@ -14,29 +14,18 @@ concurrency:
14
14
cancel-in-progress : false
15
15
16
16
jobs :
17
+ # TODO add bundled builds for platforms where we don't have pre-built libraries
17
18
linux :
18
- runs-on : ${{ matrix.platform.runner }}
19
+ runs-on : ubuntu-22.04
19
20
strategy :
20
21
matrix :
21
22
platform :
22
- - runner : ubuntu-22.04
23
- target : x86_64
23
+ - target : x86_64
24
24
manylinux : auto
25
- - runner : ubuntu-22.04
26
- target : x86
27
- manylinux : auto
28
- - runner : ubuntu-22.04
29
- target : aarch64
25
+ duckdb-slug : amd64
26
+ - target : aarch64
30
27
manylinux : " 2_28"
31
- - runner : ubuntu-22.04
32
- target : armv7
33
- manylinux : auto
34
- - runner : ubuntu-22.04
35
- target : s390x
36
- manylinux : auto
37
- - runner : ubuntu-22.04
38
- target : ppc64le
39
- manylinux : auto
28
+ duckdb-slug : aarch64
40
29
steps :
41
30
- uses : actions/checkout@v4
42
31
- uses : astral-sh/setup-uv@v5
@@ -46,73 +35,27 @@ jobs:
46
35
uses : PyO3/maturin-action@v1
47
36
with :
48
37
target : ${{ matrix.platform.target }}
49
- args : --release --out dist -i 3.10
38
+ args : --release --out dist -i 3.10 --auditwheel repair
50
39
sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
51
40
manylinux : ${{ matrix.platform.manylinux }}
41
+ before-script-linux : |
42
+ if command -v yum &> /dev/null; then
43
+ yum install -y unzip
44
+ elif command -v apt-get &> /dev/null; then
45
+ apt-get update && apt-get install -y unzip
46
+ else
47
+ echo "No supported package manager found."
48
+ exit 1
49
+ fi
50
+ curl -L -O https://github.com/duckdb/duckdb/releases/download/v1.2.0/libduckdb-linux-${{ matrix.platform.duckdb-slug }}.zip
51
+ unzip libduckdb-linux-${{ matrix.platform.duckdb-slug }}.zip -d /opt/duckdb
52
+ export DUCKDB_LIB_DIR=/opt/duckdb
52
53
- name : Upload wheels
53
54
uses : actions/upload-artifact@v4
54
55
with :
55
56
name : wheels-linux-${{ matrix.platform.target }}
56
57
path : dist
57
58
58
- musllinux :
59
- runs-on : ${{ matrix.platform.runner }}
60
- strategy :
61
- matrix :
62
- platform :
63
- - runner : ubuntu-22.04
64
- target : x86_64
65
- - runner : ubuntu-22.04
66
- target : x86
67
- - runner : ubuntu-22.04
68
- target : aarch64
69
- - runner : ubuntu-22.04
70
- target : armv7
71
- steps :
72
- - uses : actions/checkout@v4
73
- - uses : astral-sh/setup-uv@v5
74
- - name : Install Pythons
75
- run : uv python install 3.10
76
- - name : Build wheels
77
- uses : PyO3/maturin-action@v1
78
- with :
79
- target : ${{ matrix.platform.target }}
80
- args : --release --out dist -i 3.10
81
- sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
82
- manylinux : musllinux_1_2
83
- - name : Upload wheels
84
- uses : actions/upload-artifact@v4
85
- with :
86
- name : wheels-musllinux-${{ matrix.platform.target }}
87
- path : dist
88
-
89
- # windows:
90
- # runs-on: ${{ matrix.platform.runner }}
91
- # strategy:
92
- # matrix:
93
- # platform:
94
- # - runner: windows-latest
95
- # target: x64
96
- # - runner: windows-latest
97
- # target: x86
98
- # steps:
99
- # - uses: actions/checkout@v4
100
- # - uses: actions/setup-python@v5
101
- # with:
102
- # python-version: 3.x
103
- # architecture: ${{ matrix.platform.target }}
104
- # - name: Build wheels
105
- # uses: PyO3/maturin-action@v1
106
- # with:
107
- # target: ${{ matrix.platform.target }}
108
- # args: --release --out dist --find-interpreter
109
- # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
110
- # - name: Upload wheels
111
- # uses: actions/upload-artifact@v4
112
- # with:
113
- # name: wheels-windows-${{ matrix.platform.target }}
114
- # path: dist
115
-
116
59
macos :
117
60
runs-on : ${{ matrix.platform.runner }}
118
61
strategy :
@@ -122,17 +65,34 @@ jobs:
122
65
target : x86_64
123
66
- runner : macos-14
124
67
target : aarch64
68
+ env :
69
+ DUCKDB_VERSION : " 1.2.0"
125
70
steps :
126
71
- uses : actions/checkout@v4
127
72
- uses : astral-sh/setup-uv@v5
128
- - name : Install Pythons
73
+ - name : Install Python
129
74
run : uv python install 3.10
75
+ - name : Install libduckdb
76
+ run : |
77
+ wget https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-osx-universal.zip
78
+ mkdir -p ./opt/duckdb
79
+ unzip libduckdb-osx-universal.zip -d ${{ github.workspace }}/opt/duckdb
80
+ - name : Install delocate
81
+ run : |
82
+ uv venv
83
+ uv pip install delocate
130
84
- name : Build wheels
131
85
uses : PyO3/maturin-action@v1
86
+ env :
87
+ DUCKDB_LIB_DIR : ${{ github.workspace }}/opt/duckdb
132
88
with :
133
89
target : ${{ matrix.platform.target }}
134
90
args : --release --out dist -i 3.10
135
91
sccache : ${{ !startsWith(github.ref, 'refs/tags/') }}
92
+ - name : Repair wheel
93
+ run : .venv/bin/delocate-wheel -v dist/*.whl
94
+ env :
95
+ DYLD_LIBRARY_PATH : ${{ github.workspace }}/opt/duckdb
136
96
- name : Upload wheels
137
97
uses : actions/upload-artifact@v4
138
98
with :
@@ -160,8 +120,6 @@ jobs:
160
120
if : ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
161
121
needs :
162
122
- linux
163
- - musllinux
164
- # - windows
165
123
- macos
166
124
- sdist
167
125
environment :
0 commit comments