2.0.0 alpha 2 #2
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 | |
| on: | |
| release: | |
| types: [published] | |
| env: | |
| COLUMNS: 150 | |
| jobs: | |
| # Build source distribution | |
| build-sdist: | |
| name: Build sdist | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - uses: PyO3/maturin-action@v1 | |
| with: | |
| command: sdist | |
| args: --out dist | |
| rust-toolchain: stable | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: pypi_files_sdist | |
| path: dist | |
| # Build wheels for all supported platforms | |
| build-wheels: | |
| name: Build wheels on ${{ matrix.os }} (${{ matrix.target }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: linux | |
| target: x86_64 | |
| runs-on: ubuntu-latest | |
| manylinux: auto | |
| - os: linux | |
| target: aarch64 | |
| runs-on: ubuntu-latest | |
| manylinux: auto | |
| - os: macos | |
| target: aarch64 | |
| runs-on: macos-latest | |
| - os: windows | |
| target: x86_64 | |
| runs-on: windows-latest | |
| - os: windows | |
| target: aarch64 | |
| python-architecture: arm64 | |
| runs-on: windows-11-arm | |
| runs-on: ${{ matrix.runs-on }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| architecture: ${{ matrix.python-architecture || 'x64' }} | |
| - name: Install twine | |
| run: pip install -U twine | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| manylinux: ${{ matrix.manylinux || 'auto' }} | |
| args: --release --out dist --interpreter 3.10 3.11 3.12 3.13 3.14 | |
| rust-toolchain: stable | |
| docker-options: -e CI | |
| before-script-linux: | | |
| if command -v yum &> /dev/null; then | |
| yum install -y openssl-devel cmake3 perl-IPC-Cmd perl-Time-Piece | |
| which cmake3 && ln -sf $(which cmake3) /usr/local/bin/cmake || true | |
| elif command -v apk &> /dev/null; then | |
| apk add --no-cache openssl-dev cmake make perl | |
| elif command -v apt-get &> /dev/null; then | |
| apt-get update && apt-get install -y libssl-dev cmake perl | |
| fi | |
| - name: List dist files | |
| run: ls -lh dist/ | |
| shell: bash | |
| - name: Check wheels | |
| run: twine check --strict dist/* | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: pypi_files_${{ matrix.os }}_${{ matrix.target }} | |
| path: dist | |
| # Publish to PyPI and attach assets to GitHub Release | |
| publish: | |
| name: Publish to PyPI | |
| needs: [build-sdist, build-wheels] | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: release | |
| permissions: | |
| id-token: write | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: pypi_files_* | |
| merge-multiple: true | |
| path: dist | |
| - name: List dist files | |
| run: | | |
| ls -lh dist/ | |
| echo "Total files: $(ls dist | wc -l)" | |
| - name: Verify wheel integrity | |
| run: for whl in dist/*.whl; do unzip -qt "$whl"; done | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v2 | |
| - name: Publish to PyPI | |
| run: uv publish --trusted-publishing always | |
| - name: Upload assets to GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: dist/* |