diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fd20637..afef09e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,8 +1,6 @@ name: Build on: - workflow_dispatch: - pull_request: push: branches: - release @@ -12,102 +10,74 @@ jobs: name: Build SDist runs-on: ubuntu-latest steps: + - name: Checkout out repo and submodules + uses: actions/checkout@v3 + with: + submodules: true - - name: Checkout out repo and submodules - uses: actions/checkout@v3 - with: - submodules: true - - - name: Build SDist - run: pipx run build --sdist - - - name: Check metadata - run: pipx run twine check dist/* + - name: Build SDist + run: pipx run build --sdist - - uses: actions/upload-artifact@v3 - with: - path: dist/*.tar.gz + - name: Check metadata + run: pipx run twine check dist/* + - name: Upload SDist + uses: actions/upload-artifact@v3 + with: + name: sdist + path: dist/*.tar.gz build_wheels: - runs-on: ${{ matrix.os_dist.os }} - env: - CIBW_BUILD: "${{ matrix.os_dist.dist }}" - MACOSX_DEPLOYMENT_TARGET: "13.1" - CIBW_ARCHS_MACOS: "arm64 x86_64" - CIBW_REPAIR_WHEEL_COMMAND_MACOS: delocate-wheel -w {dest_dir} -v {wheel} + name: Build Wheels + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os_dist: [ - # # macosx x86_64 - {os: macos-latest, dist: cp38-macosx_x86_64}, - {os: macos-latest, dist: cp39-macosx_x86_64}, - {os: macos-latest, dist: cp310-macosx_x86_64}, - {os: macos-latest, dist: cp311-macosx_x86_64}, - {os: macos-latest, dist: cp312-macosx_x86_64}, - {os: macos-latest, dist: cp313-macosx_x86_64}, - - - # # macosx arm64 - {os: macos-latest, dist: cp38-macosx_arm64}, - {os: macos-latest, dist: cp39-macosx_arm64}, - {os: macos-latest, dist: cp310-macosx_arm64}, - {os: macos-latest, dist: cp311-macosx_arm64}, - {os: macos-latest, dist: cp312-macosx_arm64}, - {os: macos-latest, dist: cp313-macosx_arm64}, - - # # macosx universal2 - # # {os: macos-latest, dist: cp38-macosx_universal2}, - # # {os: macos-latest, dist: cp39-macosx_universal2}, - # # {os: macos-latest, dist: cp310-macosx_universal2}, - # # {os: macos-latest, dist: cp311-macosx_universal2}, - - # # windows amd64 - {os: windows-latest, dist: cp38-win_amd64}, - {os: windows-latest, dist: cp39-win_amd64}, - {os: windows-latest, dist: cp310-win_amd64}, - {os: windows-latest, dist: cp311-win_amd64}, - {os: windows-latest, dist: cp312-win_amd64}, - {os: windows-latest, dist: cp313-win_amd64}, - - - # ubuntu x86_64 - {os: ubuntu-latest, dist: cp38-manylinux_x86_64}, - {os: ubuntu-latest, dist: cp39-manylinux_x86_64}, - {os: ubuntu-latest, dist: cp310-manylinux_x86_64}, - {os: ubuntu-latest, dist: cp311-manylinux_x86_64}, - {os: ubuntu-latest, dist: cp312-manylinux_x86_64}, - {os: ubuntu-latest, dist: cp313-manylinux_x86_64}, - - - ] + os: [ubuntu-latest, windows-latest, macos-latest] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] steps: - - uses: actions/checkout@v3 - with: - submodules: true + - name: Checkout repo and submodules + uses: actions/checkout@v3 + with: + submodules: true - - uses: pypa/cibuildwheel@v2.20.0 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} - - uses: actions/upload-artifact@v3 - with: - path: ./wheelhouse/*.whl + - name: Install cibuildwheel + run: pip install cibuildwheel - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - path: wheelhouse/*.whl + - name: Build Wheels + run: cibuildwheel --output-dir wheelhouse + + - name: Upload Wheels + uses: actions/upload-artifact@v3 + with: + name: wheels + path: wheelhouse/*.whl upload_pypi: - needs: [ build_wheels, build_sdist ] + name: Upload to PyPI + needs: [build_wheels, build_sdist] runs-on: ubuntu-latest steps: - - uses: actions/download-artifact@v3 + - name: Download SDist + uses: actions/download-artifact@v3 with: - name: artifact + name: sdist path: dist - - uses: pypa/gh-action-pypi-publish@release/v1 + + - name: Download Wheels + uses: actions/download-artifact@v3 + with: + name: wheels + path: dist + + - name: Upload to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 with: password: ${{ secrets.PYPI_PASSWORD }} skip_existing: true - verbose: true \ No newline at end of file + verbose: true diff --git a/setup.py b/setup.py index 12397cc..1541259 100755 --- a/setup.py +++ b/setup.py @@ -91,15 +91,9 @@ def generate_cython_stub_file(pyx_filepath: str, output_filepath: str) -> None: ## BUILD - if sys.platform == "darwin": - os.environ["CC"] = "gcc-11" - os.environ["CXX"] = "g++-11" - -# if sys.platform == "darwin": -# os.environ["CC"] = "clang" -# os.environ["CXX"] = "clang++" - + os.environ["CC"] = "clang" + os.environ["CXX"] = "clang++" if sys.platform == "win32": compile_flags = ["/Ox", "/std:c++20"]