polarduck 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,120 @@
1
+ name: Build & Publish polarduck (PyPI)
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ tags:
8
+ - "v*"
9
+ pull_request:
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: write
14
+ id-token: write
15
+
16
+ jobs:
17
+ rust-test:
18
+ name: Rust & Python Integration Tests
19
+ runs-on: ubuntu-22.04
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - uses: dtolnay/rust-toolchain@stable
23
+ - uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.11"
26
+ - name: Run pure-Rust unit tests
27
+ run: cargo test --no-default-features --features spatial
28
+ - name: Build Python wheel & run pytest integration suite
29
+ run: |
30
+ pip install maturin pytest polars duckdb pyarrow
31
+ maturin build --release --out dist_test
32
+ pip install --force-reinstall dist_test/polarduck-*.whl
33
+ pytest tests/test_polarduck.py -v
34
+
35
+ linux:
36
+ needs: rust-test
37
+ runs-on: ubuntu-22.04
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+ - uses: actions/setup-python@v5
41
+ with:
42
+ python-version: "3.11"
43
+ - name: Build Linux manylinux wheel
44
+ uses: PyO3/maturin-action@v1
45
+ with:
46
+ target: x86_64
47
+ args: --release --out dist
48
+ sccache: "true"
49
+ manylinux: auto
50
+ - uses: actions/upload-artifact@v4
51
+ with:
52
+ name: wheels-linux-x86_64
53
+ path: dist
54
+
55
+ windows:
56
+ needs: rust-test
57
+ runs-on: windows-latest
58
+ steps:
59
+ - uses: actions/checkout@v4
60
+ - uses: actions/setup-python@v5
61
+ with:
62
+ python-version: "3.11"
63
+ - name: Build Windows x86_64 wheel
64
+ uses: PyO3/maturin-action@v1
65
+ with:
66
+ target: x86_64
67
+ args: --release --out dist
68
+ sccache: "true"
69
+ - uses: actions/upload-artifact@v4
70
+ with:
71
+ name: wheels-windows-x86_64
72
+ path: dist
73
+
74
+ sdist:
75
+ needs: rust-test
76
+ runs-on: ubuntu-22.04
77
+ steps:
78
+ - uses: actions/checkout@v4
79
+ - name: Build sdist
80
+ uses: PyO3/maturin-action@v1
81
+ with:
82
+ command: sdist
83
+ args: --out dist
84
+ - uses: actions/upload-artifact@v4
85
+ with:
86
+ name: wheels-sdist
87
+ path: dist
88
+
89
+ github-release:
90
+ name: Bundle Artifacts & GitHub Release
91
+ if: startsWith(github.ref, 'refs/tags/v')
92
+ needs: [linux, windows, sdist]
93
+ runs-on: ubuntu-22.04
94
+ steps:
95
+ - uses: actions/download-artifact@v4
96
+ with:
97
+ pattern: wheels-*
98
+ path: dist
99
+ merge-multiple: true
100
+ - uses: softprops/action-gh-release@v2
101
+ with:
102
+ files: dist/*
103
+
104
+ publish:
105
+ name: Publish to PyPI
106
+ if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v')
107
+ needs: [linux, windows, sdist]
108
+ runs-on: ubuntu-22.04
109
+ steps:
110
+ - uses: actions/download-artifact@v4
111
+ with:
112
+ pattern: wheels-*
113
+ path: dist
114
+ merge-multiple: true
115
+ - name: Publish distributions to PyPI
116
+ uses: pypa/gh-action-pypi-publish@release/v1
117
+ continue-on-error: true
118
+ with:
119
+ password: ${{ secrets.PYPI_API_TOKEN }}
120
+ skip-existing: true
@@ -0,0 +1,10 @@
1
+ /target/
2
+ /dist/
3
+ *.whl
4
+ __pycache__/
5
+ *.py[cod]
6
+ *.so
7
+ *.pyd
8
+ *.dylib
9
+ .pytest_cache/
10
+ .ruff_cache/