name: Wheels on: workflow_call # [push, pull_request] jobs: wheels_pytest: uses: ./.github/workflows/pytest.yml build_wheels: name: Build wheels on ${{ matrix.os }} needs: [ wheels_pytest ] runs-on: ${{ matrix.os }} strategy: matrix: os: [ ubuntu-latest, windows-latest, macos-13, macos-latest ] steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 - name: Install cibuildwheel run: python -m pip install cibuildwheel==2.21.3 - name: Set path if: runner.os != 'Windows' run: export PATH="$HOME/.cargo/bin:$PATH" - name: Check path if: runner.os != 'Windows' run: echo $PATH - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse - uses: actions/upload-artifact@v4 with: name: tiffwrite-wheels-${{ matrix.os }}-${{ strategy.job-index }} path: ./wheelhouse/*.whl build_sdist: name: Build source distribution needs: [ wheels_pytest ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build sdist run: | pip install build python -m build --sdist - uses: actions/upload-artifact@v4 with: name: tiffwrite-sdist path: dist/*.tar.gz