| name: Build Python Wheels |
| |
| on: |
| # allow manual runs |
| workflow_dispatch: |
| # run when we tag a release |
| release: |
| types: |
| - "created" |
| |
| env: |
| BUILD_TYPE: Release |
| |
| jobs: |
| build_sdist: |
| name: Source distribution |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| |
| - uses: actions/setup-python@v3 |
| name: Install Python |
| with: |
| python-version: '3.x' |
| |
| - name: Install build package |
| run: python -m pip install build --user |
| |
| - name: Build sdist |
| run: python -m build --sdist --outdir dist |
| |
| - uses: actions/upload-artifact@v2 |
| with: |
| path: dist/*.tar.gz |
| |
| build_wheels: |
| name: ${{ matrix.config.name }} |
| runs-on: ${{ matrix.config.os }} |
| strategy: |
| fail-fast: false |
| matrix: |
| config: |
| - { |
| name: "MacOS 10.15", |
| os: macos-latest |
| } |
| - { |
| name: "Ubuntu Latest", |
| os: ubuntu-latest |
| } |
| - { |
| name: "Windows Latest", |
| os: windows-latest |
| } |
| |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v3 |
| |
| - name: Set up Python 3.x |
| uses: actions/setup-python@v2 |
| with: |
| python-version: '3.x' |
| |
| - name: Install Python dependencies |
| run: python -m pip install cibuildwheel==2.5.0 |
| |
| - name: Build wheels |
| run: python -m cibuildwheel --output-dir dist |
| env: |
| CIBW_BEFORE_BUILD: python -m pip install cmake>=3.18 |
| CIBW_SKIP: "*-win32 pp*-macosx*" |
| CIBW_ARCHS_MACOS: "x86_64 arm64 universal2" |
| |
| - uses: actions/upload-artifact@v2 |
| with: |
| path: ./dist/*.whl |