chore(rust): release (#1449) #2481
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
| # 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-*/*' |