Skip to content

chore(rust): rm pub fields, builder pattern #2473

chore(rust): rm pub fields, builder pattern

chore(rust): rm pub fields, builder pattern #2473

Workflow file for this run

# This file is autogenerated by maturin v1.12.4
# To update, run the following command, but make sure to keep the adjustments that we did.
# maturin generate-ci github
name: Python Release
on:
push:
branches:
- main
tags:
- 'python-mlt-v*'
pull_request:
paths:
- 'justfile'
- 'rust/mod.just'
- '.github/**'
- 'rust/**'
- 'test/**'
workflow_dispatch:
permissions:
contents: read
jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
# FIXME: FSST does not seem to support 32bit targets
#- runner: ubuntu-22.04
# target: x86
# FIXME: Python::initialize not avaliable for linking
#- runner: ubuntu-22.04
# target: aarch64
# FIXME: error: unknown type name '__m128i' and related
#- runner: ubuntu-22.04
# target: armv7
# FIXME: cpp standard mismatch
#- runner: ubuntu-22.04
# target: s390x
# FIXME: error: unknown type name '__m128i' and related
#- runner: ubuntu-22.04
# target: ppc64le
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: ./.github/actions/mlt-setup-rust
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with: { python-version: '3.x' }
- name: Build wheels
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
target: ${{ matrix.platform.target }}
args: --release --zig --out dist --find-interpreter --locked --compatibility pypi --future-incompat-report --manifest-path rust/mlt-py/Cargo.toml
sccache: false
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
# FIXME: our --bin bins/stub-gen requires pyo3::Python::initialize, but unsure how to do that on musllinux. We don't need it for the library!
#musllinux:
# runs-on: ${{ matrix.platform.runner }}
# strategy:
# fail-fast: false
# matrix:
# platform:
# - runner: ubuntu-22.04
# target: x86_64
# - runner: ubuntu-22.04
# target: x86
# - runner: ubuntu-22.04
# target: aarch64
# - runner: ubuntu-22.04
# # FIXME: FSST does not seem to support 32bit targets
# #- runner: ubuntu-22.04
# # target: x86
# # FIXME: Python::initialize not avaliable for linking
# #- runner: ubuntu-22.04
# # target: aarch64
# # FIXME: error: unknown type name '__m128i' and related
# #- runner: ubuntu-22.04
# # target: armv7
# steps:
# - uses: actions/checkout@v6
# - uses: ./.github/actions/mlt-setup-rust
# - uses: actions/setup-python@v6
# with: { python-version: '3.x' }
# - name: Build wheels
# uses: PyO3/maturin-action@v1
# with:
# target: ${{ matrix.platform.target }}
# args: --release --zig --out dist --find-interpreter --locked --compatibility pypi --future-incompat-report --manifest-path rust/mlt-py/Cargo.toml
# sccache: false
# manylinux: musllinux_1_2
# - name: Upload wheels
# uses: actions/upload-artifact@v7
# with:
# name: wheels-musllinux-${{ matrix.platform.target }}
# path: dist
# FIXME: Failed to run `zig cc -v` with status exit code: 1: error: unable to create compilation: LibCStdLibHeaderNotFound
#windows:
# runs-on: ${{ matrix.platform.runner }}
# strategy:
# fail-fast: false
# matrix:
# platform:
# - runner: windows-latest
# target: x64
# python_arch: x64
# - runner: windows-latest
# target: x86
# python_arch: x86
# - runner: windows-11-arm
# target: aarch64
# python_arch: arm64
# steps:
# - uses: actions/checkout@v6
# - uses: ./.github/actions/mlt-setup-rust
# - uses: actions/setup-python@v6
# with:
# python-version: 3.13
# architecture: ${{ matrix.platform.python_arch }}
# - name: Build wheels
# uses: PyO3/maturin-action@v1
# with:
# target: ${{ matrix.platform.target }}
# args: --release --zig --out dist --find-interpreter --locked --compatibility pypi --future-incompat-report --manifest-path rust/mlt-py/Cargo.toml
# sccache: false
# - name: Upload wheels
# uses: actions/upload-artifact@v7
# with:
# name: wheels-windows-${{ matrix.platform.target }}
# path: dist
macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
matrix:
platform:
- runner: macos-15-intel
target: x86_64
- runner: macos-latest
target: aarch64
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: ./.github/actions/mlt-setup-rust
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with: { python-version: '3.x' }
- name: Build wheels
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
target: ${{ matrix.platform.target }}
args: --release --zig --out dist --find-interpreter --locked --compatibility pypi --future-incompat-report --manifest-path rust/mlt-py/Cargo.toml
sccache: false
- name: Upload wheels
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Build sdist
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
with:
command: sdist
args: --out dist --manifest-path rust/mlt-py/Cargo.toml
- name: Upload sdist
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with: { name: 'wheels-sdist', path: 'dist' }
release:
name: Release
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
needs:
- linux
# FIXME: does seem to require dev-only dependencys
#- musllinux
# FIXME: Failed to run `zig cc -v` with status exit code: 1: error: unable to create compilation: LibCStdLibHeaderNotFound
#- windows
- macos
- sdist
permissions:
# Use to sign the release artifacts
id-token: write
# Used to upload release artifacts
contents: write
# Used to generate artifact attestation
attestations: write
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v3.1.0-node20
- name: Generate artifact attestation
uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
with: { subject-path: 'wheels-*/*' }
- name: Install uv
if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
- name: Publish to PyPI
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: uv publish 'wheels-*/*'