diff --git a/.github/workflows/publish-python.yml b/.github/workflows/publish-python.yml index 0b2df2b..2f46879 100644 --- a/.github/workflows/publish-python.yml +++ b/.github/workflows/publish-python.yml @@ -4,16 +4,56 @@ on: workflow_dispatch: jobs: - publish-python: + build: + strategy: + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + - os: ubuntu-latest + target: aarch64-unknown-linux-gnu + - os: macos-latest + target: x86_64-apple-darwin + - os: macos-latest + target: aarch64-apple-darwin + - os: windows-latest + target: x86_64-pc-windows-msvc + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v6 + - uses: PyO3/maturin-action@v1 + with: + command: build + target: ${{ matrix.target }} + args: --release --manifest-path packages/python/pyproject.toml --out dist + - uses: actions/upload-artifact@v4 + with: + name: wheel-${{ matrix.target }} + path: dist/*.whl + + sdist: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: PyO3/maturin-action@v1 + with: + command: sdist + args: --manifest-path packages/python/pyproject.toml --out dist + - uses: actions/upload-artifact@v4 + with: + name: sdist + path: dist/*.tar.gz + + publish: + needs: [build, sdist] runs-on: ubuntu-latest environment: pypi permissions: id-token: write - defaults: - run: - working-directory: packages/python steps: - - uses: actions/checkout@v6 - - uses: astral-sh/setup-uv@v5 - - run: uv build - - run: uv publish --trusted-publishing always + - uses: actions/download-artifact@v4 + with: + path: dist + merge-multiple: true + - uses: astral-sh/setup-uv@v8.0.0 + - run: uv publish --trusted-publishing always dist/*