name: Build Release on: workflow_dispatch permissions: contents: write jobs: build_wheels: name: Build wheels on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-20.04, windows-2019, macos-11] steps: - uses: actions/checkout@v4 with: submodules: "recursive" # Used to host cibuildwheel - uses: actions/setup-python@v5 with: python-version: "3.8" - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install -e .[all] - name: Build wheels uses: pypa/cibuildwheel@v2.17.0 env: # disable repair CIBW_REPAIR_WHEEL_COMMAND: "" with: package-dir: . output-dir: wheelhouse - uses: actions/upload-artifact@v4 with: name: wheels-${{ matrix.os }} path: ./wheelhouse/*.whl build_wheels_arm64: name: Build arm64 wheels runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: "recursive" - name: Set up QEMU uses: docker/setup-qemu-action@v3 with: platforms: linux/arm64 - name: Build wheels uses: pypa/cibuildwheel@v2.17.0 env: CIBW_SKIP: "*musllinux* pp*" CIBW_REPAIR_WHEEL_COMMAND: "" CIBW_ARCHS: "aarch64" CIBW_BUILD: "cp38-* cp39-* cp310-* cp311-* cp312-*" with: output-dir: wheelhouse - name: Upload wheels as artifacts uses: actions/upload-artifact@v4 with: name: wheels_arm64 path: ./wheelhouse/*.whl build_sdist: name: Build source distribution runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: "recursive" - uses: actions/setup-python@v5 with: python-version: "3.8" - name: Install dependencies run: | python -m pip install --upgrade pip build python -m pip install -e .[all] - name: Build source distribution run: | python -m build --sdist - uses: actions/upload-artifact@v4 with: name: sdist path: ./dist/*.tar.gz release: name: Release needs: [build_wheels, build_wheels_arm64, build_sdist] runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v4 with: merge-multiple: true path: dist - uses: softprops/action-gh-release@v2 with: files: dist/* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}