Merge pull request #1 from asiomchen/whl-fix #4
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: Build and upload to PyPI | |
| on: | |
| push: | |
| tags: ['v*'] | |
| jobs: | |
| build_wheels: | |
| name: Build wheels for ${{ matrix.os }} | |
| runs-on: ${{ matrix.runs-on }} | |
| strategy: | |
| matrix: | |
| include: | |
| - os: linux-intel | |
| runs-on: ubuntu-latest | |
| - os: linux-arm | |
| runs-on: ubuntu-24.04-arm | |
| - os: windows-intel | |
| runs-on: windows-latest | |
| - os: windows-arm | |
| runs-on: windows-11-arm | |
| - os: macos-intel | |
| # macos-15-intel is the last x86_64 runner | |
| runs-on: macos-15-intel | |
| - os: macos-arm | |
| # macos-14+ (including latest) are ARM64 runners | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@v3.3.0 | |
| env: | |
| CIBW_PLATFORM: ${{ matrix.platform || 'auto' }} | |
| CIBW_ARCHS: ${{ matrix.archs || 'auto' }} | |
| # Can also be configured directly, using `with:` | |
| # with: | |
| # package-dir: . | |
| # output-dir: wheelhouse | |
| # config-file: "{package}/pyproject.toml" | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} | |
| path: ./wheelhouse/*.whl | |
| build_sdist: | |
| name: Build source distribution | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Build sdist | |
| run: pipx run build --sdist | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: cibw-sdist | |
| path: dist/*.tar.gz | |
| upload_pypi: | |
| needs: [build_wheels, build_sdist] | |
| runs-on: ubuntu-latest | |
| environment: pypi | |
| permissions: | |
| id-token: write | |
| steps: | |
| - uses: actions/download-artifact@v5 | |
| with: | |
| # unpacks all CIBW artifacts into dist/ | |
| pattern: cibw-* | |
| path: dist | |
| merge-multiple: true | |
| - uses: pypa/gh-action-pypi-publish@release/v1 | |
| # To test uploads to TestPyPI, uncomment the following: | |
| # with: | |
| # repository-url: https://test.pypi.org/legacy/ | |
| github-release: | |
| needs: [build_wheels, build_sdist] | |
| name: >- | |
| Sign the distribution📦 with Sigstore | |
| and upload them to GitHub Release | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write # IMPORTANT: mandatory for making GitHub Releases | |
| id-token: write # IMPORTANT: mandatory for sigstore | |
| steps: | |
| - name: Download all the dists | |
| uses: actions/download-artifact@v6 | |
| with: | |
| pattern: cibw-* | |
| path: dist/ | |
| merge-multiple: true | |
| - name: Sign the dists with Sigstore🔏 | |
| uses: sigstore/gh-action-sigstore-python@v3.1.0 | |
| with: | |
| inputs: >- | |
| ./dist/*.tar.gz | |
| ./dist/*.whl | |
| # this is broken for now, need to crreate the release first | |
| # see https://github.com/orgs/community/discussions/180369 | |
| # - name: Create GitHub Release | |
| # env: | |
| # GITHUB_TOKEN: ${{ github.token }} | |
| # run: >- | |
| # gh release create | |
| # "$GITHUB_REF_NAME" | |
| # --repo "$GITHUB_REPOSITORY" | |
| # --generate-notes --draft | |
| - name: Upload artifact signatures to GitHub Release | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| run: >- | |
| gh release upload | |
| "$GITHUB_REF_NAME" dist/** | |
| --repo "$GITHUB_REPOSITORY" | |