Update version to 0.27.5. #23
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release PyPI deck | |
| # Publishes `net-deck` to PyPI — the `net-deck` Rust binary | |
| # packaged as a maturin-built wheel (`bindings = "bin"`). Sibling | |
| # of `release-pypi-cli.yml`; see that file's header for the design | |
| # notes — the two workflows are deliberately parallel. | |
| # | |
| # Tag schema: `deck-v<semver>`. | |
| # | |
| # Authentication: PyPI Trusted Publishing — `pypi` environment + | |
| # `id-token: write`. Configure on PyPI under Account → Publishing: | |
| # - PyPI project name: net-deck | |
| # - Owner: ai-2070 | |
| # - Repository: net | |
| # - Workflow: release-pypi-deck.yml | |
| # - Environment: pypi | |
| on: | |
| push: | |
| tags: | |
| - "deck-v*" | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: "Tag to release" | |
| required: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| target: [x86_64, aarch64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| args: --release --out dist --find-interpreter | |
| sccache: "true" | |
| manylinux: 2_28 | |
| before-script-linux: | | |
| export CFLAGS_aarch64_unknown_linux_gnu="-D__ARM_ARCH=8" | |
| working-directory: net/crates/net/deck/python | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: wheels-linux-${{ matrix.target }} | |
| path: net/crates/net/deck/python/dist | |
| linux-musl: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| target: [x86_64, aarch64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Build musllinux wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| args: --release --out dist --find-interpreter | |
| sccache: "true" | |
| manylinux: musllinux_1_2 | |
| working-directory: net/crates/net/deck/python | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: wheels-musllinux-${{ matrix.target }} | |
| path: net/crates/net/deck/python/dist | |
| macos: | |
| runs-on: macos-latest | |
| strategy: | |
| matrix: | |
| target: [x86_64, aarch64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| args: --release --out dist --find-interpreter | |
| sccache: "true" | |
| working-directory: net/crates/net/deck/python | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: wheels-macos-${{ matrix.target }} | |
| path: net/crates/net/deck/python/dist | |
| windows: | |
| strategy: | |
| matrix: | |
| include: | |
| - runner: windows-latest | |
| target: x64 | |
| py-arch: x64 | |
| - runner: windows-11-arm | |
| target: aarch64 | |
| py-arch: arm64 | |
| runs-on: ${{ matrix.runner }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| architecture: ${{ matrix.py-arch }} | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| args: --release --out dist --find-interpreter | |
| sccache: "true" | |
| working-directory: net/crates/net/deck/python | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: wheels-windows-${{ matrix.target }} | |
| path: net/crates/net/deck/python/dist | |
| sdist: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Build sdist | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| command: sdist | |
| args: --out dist | |
| working-directory: net/crates/net/deck/python | |
| - name: Upload sdist | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: wheels-sdist | |
| path: net/crates/net/deck/python/dist | |
| publish: | |
| needs: [linux, linux-musl, macos, windows, sdist] | |
| runs-on: ubuntu-latest | |
| environment: pypi | |
| permissions: | |
| id-token: write | |
| steps: | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| pattern: wheels-* | |
| merge-multiple: true | |
| path: dist | |
| - name: List distributions | |
| run: ls -la dist/ | |
| - name: Publish to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| # PEP 740 attestations sign each wheel via sigstore and | |
| # upload the entry to rekor.sigstore.dev. That public | |
| # transparency log is an external dependency outside our | |
| # control; when it 502s / drops the connection mid-request | |
| # it blocks the whole release even though the wheels and | |
| # the Trusted-Publishing (OIDC) path are fine. Disabled so | |
| # a Rekor outage can't gate a release. Re-enable | |
| # (`attestations: true`, the action default) once sigstore | |
| # reliability is no longer a release risk — Trusted | |
| # Publishing via `id-token: write` is unaffected either way. | |
| attestations: false |