signedshot 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,66 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ env:
10
+ CARGO_TERM_COLOR: always
11
+
12
+ jobs:
13
+ fmt:
14
+ name: Format
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - uses: dtolnay/rust-toolchain@stable
19
+ with:
20
+ components: rustfmt
21
+ - run: cargo fmt --check
22
+
23
+ clippy:
24
+ name: Clippy
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - uses: dtolnay/rust-toolchain@stable
29
+ with:
30
+ components: clippy
31
+ - uses: Swatinem/rust-cache@v2
32
+ - run: cargo clippy -- -D warnings
33
+
34
+ test:
35
+ name: Test
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - uses: actions/checkout@v4
39
+ - uses: dtolnay/rust-toolchain@stable
40
+ - uses: Swatinem/rust-cache@v2
41
+ - run: cargo test
42
+
43
+ build:
44
+ name: Build
45
+ runs-on: ubuntu-latest
46
+ steps:
47
+ - uses: actions/checkout@v4
48
+ - uses: dtolnay/rust-toolchain@stable
49
+ - uses: Swatinem/rust-cache@v2
50
+ - run: cargo build --release
51
+
52
+ # Verify Python bindings compile
53
+ python-check:
54
+ name: Python Bindings Check
55
+ runs-on: ubuntu-latest
56
+ steps:
57
+ - uses: actions/checkout@v4
58
+ - uses: actions/setup-python@v5
59
+ with:
60
+ python-version: '3.12'
61
+ - uses: dtolnay/rust-toolchain@stable
62
+ - uses: Swatinem/rust-cache@v2
63
+ - name: Install maturin
64
+ run: pip install maturin
65
+ - name: Check Python bindings build
66
+ run: maturin build --features python
@@ -0,0 +1,164 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags:
7
+ - 'v*'
8
+ pull_request:
9
+ branches: [main]
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ # Build wheels for Linux x86_64
17
+ linux-x86_64:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ - uses: actions/setup-python@v5
22
+ with:
23
+ python-version: '3.12'
24
+ - name: Build wheels
25
+ uses: PyO3/maturin-action@v1
26
+ with:
27
+ target: x86_64
28
+ args: --release --out dist --features python
29
+ sccache: 'true'
30
+ manylinux: auto
31
+ - name: Upload wheels
32
+ uses: actions/upload-artifact@v4
33
+ with:
34
+ name: wheels-linux-x86_64
35
+ path: dist
36
+
37
+ # Build wheels for Linux aarch64 (native ARM runner)
38
+ linux-aarch64:
39
+ runs-on: ubuntu-24.04-arm
40
+ steps:
41
+ - uses: actions/checkout@v4
42
+ - uses: actions/setup-python@v5
43
+ with:
44
+ python-version: '3.12'
45
+ - name: Build wheels
46
+ uses: PyO3/maturin-action@v1
47
+ with:
48
+ target: aarch64
49
+ args: --release --out dist --features python
50
+ sccache: 'true'
51
+ manylinux: auto
52
+ - name: Upload wheels
53
+ uses: actions/upload-artifact@v4
54
+ with:
55
+ name: wheels-linux-aarch64
56
+ path: dist
57
+
58
+ # Build wheels for macOS
59
+ macos:
60
+ runs-on: macos-latest
61
+ strategy:
62
+ matrix:
63
+ target: [x86_64, aarch64]
64
+ steps:
65
+ - uses: actions/checkout@v4
66
+ - uses: actions/setup-python@v5
67
+ with:
68
+ python-version: '3.12'
69
+ - name: Build wheels
70
+ uses: PyO3/maturin-action@v1
71
+ with:
72
+ target: ${{ matrix.target }}
73
+ args: --release --out dist --features python
74
+ sccache: 'true'
75
+ - name: Upload wheels
76
+ uses: actions/upload-artifact@v4
77
+ with:
78
+ name: wheels-macos-${{ matrix.target }}
79
+ path: dist
80
+
81
+ # Build wheels for Windows
82
+ windows:
83
+ runs-on: windows-latest
84
+ strategy:
85
+ matrix:
86
+ target: [x64]
87
+ steps:
88
+ - uses: actions/checkout@v4
89
+ - uses: actions/setup-python@v5
90
+ with:
91
+ python-version: '3.12'
92
+ architecture: ${{ matrix.target }}
93
+ - name: Build wheels
94
+ uses: PyO3/maturin-action@v1
95
+ with:
96
+ target: ${{ matrix.target }}
97
+ args: --release --out dist --features python
98
+ sccache: 'true'
99
+ - name: Upload wheels
100
+ uses: actions/upload-artifact@v4
101
+ with:
102
+ name: wheels-windows-${{ matrix.target }}
103
+ path: dist
104
+
105
+ # Build source distribution
106
+ sdist:
107
+ runs-on: ubuntu-latest
108
+ steps:
109
+ - uses: actions/checkout@v4
110
+ - name: Build sdist
111
+ uses: PyO3/maturin-action@v1
112
+ with:
113
+ command: sdist
114
+ args: --out dist
115
+ - name: Upload sdist
116
+ uses: actions/upload-artifact@v4
117
+ with:
118
+ name: wheels-sdist
119
+ path: dist
120
+
121
+ # Publish to PyPI (only on tags)
122
+ publish:
123
+ name: Publish to PyPI
124
+ runs-on: ubuntu-latest
125
+ if: startsWith(github.ref, 'refs/tags/v')
126
+ needs: [linux-x86_64, linux-aarch64, macos, windows, sdist]
127
+ environment:
128
+ name: pypi
129
+ url: https://pypi.org/p/signedshot
130
+ permissions:
131
+ id-token: write # Required for trusted publishing
132
+ steps:
133
+ - uses: actions/download-artifact@v4
134
+ with:
135
+ pattern: wheels-*
136
+ path: dist
137
+ merge-multiple: true
138
+ - name: Publish to PyPI
139
+ uses: pypa/gh-action-pypi-publish@release/v1
140
+ with:
141
+ skip-existing: true
142
+
143
+ # Publish to TestPyPI (on main branch push)
144
+ publish-test:
145
+ name: Publish to TestPyPI
146
+ runs-on: ubuntu-latest
147
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
148
+ needs: [linux-x86_64, linux-aarch64, macos, windows, sdist]
149
+ environment:
150
+ name: testpypi
151
+ url: https://test.pypi.org/p/signedshot
152
+ permissions:
153
+ id-token: write # Required for trusted publishing
154
+ steps:
155
+ - uses: actions/download-artifact@v4
156
+ with:
157
+ pattern: wheels-*
158
+ path: dist
159
+ merge-multiple: true
160
+ - name: Publish to TestPyPI
161
+ uses: pypa/gh-action-pypi-publish@release/v1
162
+ with:
163
+ repository-url: https://test.pypi.org/legacy/
164
+ skip-existing: true
@@ -0,0 +1,28 @@
1
+ # Generated by Cargo
2
+ /target/
3
+
4
+ # Cargo.lock for libraries (keep for binaries)
5
+ # Cargo.lock
6
+
7
+ # IDE
8
+ .idea/
9
+ .vscode/
10
+ *.swp
11
+ *.swo
12
+
13
+ # macOS
14
+ .DS_Store
15
+
16
+ # Test artifacts
17
+ *.log
18
+
19
+ # Media files (avoid accidental commits)
20
+ *.jpg
21
+ *.jpeg
22
+ *.png
23
+ *.heic
24
+ *.mov
25
+ *.mp4
26
+
27
+ # Sidecar files
28
+ *.sidecar.json