dumpling-cli 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,32 @@
1
+ name: Lint
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ lint:
14
+ name: Format and lint
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Install Rust toolchain
21
+ uses: dtolnay/rust-toolchain@stable
22
+ with:
23
+ components: rustfmt, clippy
24
+
25
+ - name: Cache Cargo build artifacts
26
+ uses: Swatinem/rust-cache@v2
27
+
28
+ - name: Check formatting
29
+ run: cargo fmt --all -- --check
30
+
31
+ - name: Run clippy
32
+ run: cargo clippy --all-targets --all-features
@@ -0,0 +1,58 @@
1
+ name: Docs
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - "README.md"
7
+ - "book.toml"
8
+ - "docs/**"
9
+ - ".github/workflows/docs.yml"
10
+ push:
11
+ branches:
12
+ - main
13
+ paths:
14
+ - "README.md"
15
+ - "book.toml"
16
+ - "docs/**"
17
+ - ".github/workflows/docs.yml"
18
+
19
+ permissions:
20
+ contents: read
21
+ pages: write
22
+ id-token: write
23
+
24
+ concurrency:
25
+ group: docs-${{ github.ref }}
26
+ cancel-in-progress: true
27
+
28
+ jobs:
29
+ build:
30
+ runs-on: ubuntu-latest
31
+ steps:
32
+ - name: Checkout
33
+ uses: actions/checkout@v4
34
+
35
+ - name: Install mdBook
36
+ uses: peaceiris/actions-mdbook@v2
37
+ with:
38
+ mdbook-version: "0.4.52"
39
+
40
+ - name: Build documentation site
41
+ run: mdbook build
42
+
43
+ - name: Upload docs artifact
44
+ uses: actions/upload-pages-artifact@v3
45
+ with:
46
+ path: docs/book
47
+
48
+ deploy:
49
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
50
+ needs: build
51
+ runs-on: ubuntu-latest
52
+ environment:
53
+ name: github-pages
54
+ url: ${{ steps.deployment.outputs.page_url }}
55
+ steps:
56
+ - name: Deploy docs to GitHub Pages
57
+ id: deployment
58
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,34 @@
1
+ name: Platform compatibility (latest)
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ platform-compat-latest:
14
+ name: Cross-platform compatibility build (latest images)
15
+ runs-on: ${{ matrix.os }}
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ os:
20
+ - ubuntu-latest
21
+ - macos-latest
22
+ - windows-latest
23
+ steps:
24
+ - name: Checkout
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Install Rust toolchain
28
+ uses: dtolnay/rust-toolchain@stable
29
+
30
+ - name: Cache Cargo build artifacts
31
+ uses: Swatinem/rust-cache@v2
32
+
33
+ - name: Build release binary
34
+ run: cargo build --release --locked
@@ -0,0 +1,32 @@
1
+ name: Platform compatibility (matrix)
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ permissions:
7
+ contents: read
8
+
9
+ jobs:
10
+ platform-compat-matrix:
11
+ name: Compatibility build (${{ matrix.os }})
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ # Expand this list as long-term support targets evolve.
17
+ os:
18
+ - ubuntu-22.04
19
+ - macos-13
20
+ - windows-2022
21
+ steps:
22
+ - name: Checkout
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Install Rust toolchain
26
+ uses: dtolnay/rust-toolchain@stable
27
+
28
+ - name: Cache Cargo build artifacts
29
+ uses: Swatinem/rust-cache@v2
30
+
31
+ - name: Build release binary
32
+ run: cargo build --release --locked
@@ -0,0 +1,136 @@
1
+ name: Publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+ workflow_dispatch:
8
+ inputs:
9
+ target:
10
+ description: "Publish target"
11
+ required: true
12
+ default: pypi
13
+ type: choice
14
+ options:
15
+ - pypi
16
+ - testpypi
17
+ - none
18
+
19
+ permissions:
20
+ contents: read
21
+
22
+ jobs:
23
+ build-wheels:
24
+ name: Build wheels (${{ matrix.os }})
25
+ runs-on: ${{ matrix.os }}
26
+ strategy:
27
+ fail-fast: false
28
+ matrix:
29
+ os:
30
+ - ubuntu-latest
31
+ - macos-latest
32
+ - windows-latest
33
+ steps:
34
+ - name: Checkout
35
+ uses: actions/checkout@v4
36
+
37
+ - name: Install Rust toolchain
38
+ uses: dtolnay/rust-toolchain@stable
39
+
40
+ - name: Cache Cargo build artifacts
41
+ uses: Swatinem/rust-cache@v2
42
+
43
+ - name: Set up Python
44
+ uses: actions/setup-python@v5
45
+ with:
46
+ python-version: "3.12"
47
+
48
+ - name: Install maturin
49
+ run: python -m pip install --upgrade maturin
50
+
51
+ - name: Build wheel
52
+ run: python -m maturin build --release --out dist
53
+
54
+ - name: Upload wheel artifacts
55
+ uses: actions/upload-artifact@v4
56
+ with:
57
+ name: wheels-${{ matrix.os }}
58
+ path: dist/*.whl
59
+ if-no-files-found: error
60
+
61
+ build-sdist:
62
+ name: Build sdist
63
+ runs-on: ubuntu-latest
64
+ steps:
65
+ - name: Checkout
66
+ uses: actions/checkout@v4
67
+
68
+ - name: Set up Python
69
+ uses: actions/setup-python@v5
70
+ with:
71
+ python-version: "3.12"
72
+
73
+ - name: Install maturin
74
+ run: python -m pip install --upgrade maturin
75
+
76
+ - name: Build sdist
77
+ run: python -m maturin sdist --out dist
78
+
79
+ - name: Upload sdist artifact
80
+ uses: actions/upload-artifact@v4
81
+ with:
82
+ name: sdist
83
+ path: dist/*.tar.gz
84
+ if-no-files-found: error
85
+
86
+ publish-pypi:
87
+ name: Publish to PyPI
88
+ needs:
89
+ - build-wheels
90
+ - build-sdist
91
+ if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'pypi')
92
+ runs-on: ubuntu-latest
93
+ environment:
94
+ name: pypi
95
+ permissions:
96
+ id-token: write
97
+ steps:
98
+ - name: Download built distributions
99
+ uses: actions/download-artifact@v4
100
+ with:
101
+ pattern: "*"
102
+ path: dist
103
+ merge-multiple: true
104
+
105
+ - name: Publish packages to PyPI
106
+ uses: pypa/gh-action-pypi-publish@release/v1
107
+ with:
108
+ packages-dir: dist
109
+ user: __token__
110
+ password: ${{ secrets.PYPI_UPLOAD_TOKEN }}
111
+ skip-existing: true
112
+
113
+ publish-testpypi:
114
+ name: Publish to TestPyPI
115
+ needs:
116
+ - build-wheels
117
+ - build-sdist
118
+ if: github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'testpypi'
119
+ runs-on: ubuntu-latest
120
+ environment:
121
+ name: testpypi
122
+ permissions:
123
+ id-token: write
124
+ steps:
125
+ - name: Download built distributions
126
+ uses: actions/download-artifact@v4
127
+ with:
128
+ pattern: "*"
129
+ path: dist
130
+ merge-multiple: true
131
+
132
+ - name: Publish packages to TestPyPI
133
+ uses: pypa/gh-action-pypi-publish@release/v1
134
+ with:
135
+ packages-dir: dist
136
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,51 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ verify-and-package:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - name: Checkout
16
+ uses: actions/checkout@v4
17
+
18
+ - name: Install Rust toolchain
19
+ uses: dtolnay/rust-toolchain@stable
20
+ with:
21
+ components: rustfmt, clippy
22
+
23
+ - name: Cache Cargo build artifacts
24
+ uses: Swatinem/rust-cache@v2
25
+
26
+ - name: Validate formatting
27
+ run: cargo fmt --all -- --check
28
+
29
+ - name: Validate linting
30
+ run: cargo clippy --all-targets --all-features
31
+
32
+ - name: Validate tests
33
+ run: cargo test --all-targets --all-features
34
+
35
+ - name: Build release binary
36
+ run: cargo build --release --locked
37
+
38
+ - name: Assemble release artifacts
39
+ run: |
40
+ mkdir -p dist
41
+ cp target/release/dumpling dist/dumpling-linux-x86_64
42
+ tar -C dist -czf "dist/dumpling-${GITHUB_REF_NAME}-linux-x86_64.tar.gz" dumpling-linux-x86_64
43
+ sha256sum "dist/dumpling-${GITHUB_REF_NAME}-linux-x86_64.tar.gz" > "dist/dumpling-${GITHUB_REF_NAME}-linux-x86_64.tar.gz.sha256"
44
+
45
+ - name: Create GitHub release and upload artifacts
46
+ uses: softprops/action-gh-release@v2
47
+ with:
48
+ generate_release_notes: true
49
+ files: |
50
+ dist/dumpling-*.tar.gz
51
+ dist/dumpling-*.sha256
@@ -0,0 +1,27 @@
1
+ name: Test
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ test:
14
+ name: Run tests
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Install Rust toolchain
21
+ uses: dtolnay/rust-toolchain@stable
22
+
23
+ - name: Cache Cargo build artifacts
24
+ uses: Swatinem/rust-cache@v2
25
+
26
+ - name: Run cargo tests
27
+ run: cargo test --all-targets --all-features
@@ -0,0 +1,2 @@
1
+ /target/
2
+ /docs/book/
@@ -0,0 +1,20 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project should be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+
12
+ - GitHub Actions lint workflow for formatting and clippy checks.
13
+ - GitHub Actions `Test` workflow for `cargo test --all-targets --all-features`.
14
+ - GitHub Actions `Platform compatibility (latest)` workflow for cross-platform builds on latest runner images.
15
+ - GitHub Actions `Platform compatibility (matrix)` workflow for manual compatibility runs on explicit platform versions.
16
+ - GitHub Actions docs workflow for mdBook build and GitHub Pages deployment.
17
+ - GitHub Actions release workflow for tag-based release artifact publishing.
18
+ - GitHub Actions `Publish` workflow for cross-platform wheel/sdist builds and PyPI/TestPyPI publishing via `maturin`.
19
+ - mdBook documentation structure and release process runbook.
20
+ - Python distribution metadata via `pyproject.toml` using `maturin` (`dumpling-cli`) for pip-compatible binary builds.