Sped up Smoldyn suface and panel lookup with new c-safe Hashtable
#9
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 Wheels" | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: | |
| - master | |
| release: | |
| types: | |
| - published | |
| jobs: | |
| build_wheels: | |
| name: Build Python Wheels on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14] | |
| python_version: ["cp39-*", "cp310-*", "cp311-*", "cp312-*", "cp313-*"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Ubuntu Dependencies | |
| if: matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y gfortran cmake ninja-build libboost-all-dev libhdf5-dev libbz2-dev libssl-dev liblzma-dev | |
| - name: Install Intel MacOS Dependencies | |
| if: matrix.platform == 'macos-13' | |
| shell: bash | |
| run: | | |
| brew install boost | |
| brew install hdf5 | |
| brew install libzip | |
| brew install ninja | |
| brew install libaec | |
| brew install llvm | |
| echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> /Users/runner/.bash_profile | |
| source /Users/runner/.bash_profile | |
| ln -s $(which gfortran-14) /usr/local/bin/gfortran | |
| - name: Install ARM MacOS dependencies | |
| if: matrix.platform == 'macos-14' | |
| shell: bash | |
| run: | | |
| brew install boost | |
| brew install hdf5 | |
| brew install libzip | |
| brew install ninja | |
| brew install libaec | |
| brew install llvm | |
| echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> /Users/runner/.bash_profile | |
| ln -s /opt/homebrew/bin/gfortran-14 /usr/local/bin/gfortran | |
| - name: Install Windows Dependencies | |
| if: matrix.os == 'windows-latest' | |
| run: | | |
| choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' | |
| choco install ninja | |
| choco install msys2 | |
| C:\tools\msys64\usr\bin\bash -lc "pacman -Sy --noconfirm \ | |
| mingw-w64-clang-x86_64-cmake \ | |
| mingw-w64-clang-x86_64-ninja \ | |
| mingw-w64-clang-x86_64-toolchain \ | |
| mingw-w64-clang-x86_64-boost \ | |
| mingw-w64-clang-x86_64-hdf5 \ | |
| mingw-w64-clang-x86_64-zlib \ | |
| mingw-w64-clang-x86_64-libaec" | |
| echo "C:\tools\msys64\mingw64\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH | |
| - name: Build Wheels (Windows) | |
| uses: pypa/cibuildwheel@v2.23.2 | |
| if: matrix.os == 'windows-latest' | |
| env: | |
| CIBW_BUILD: ${{ matrix.python_version }} | |
| CIBW_BEFORE_BUILD: "pip install cmake ninja" | |
| CIBW_ENVIRONMENT: > | |
| CC=clang | |
| CXX=clang++ | |
| CMAKE_GENERATOR=Ninja | |
| # with: | |
| # package-dir: . | |
| # output-dir: wheelhouse | |
| # config-file: "{package}/pyproject.toml" | |
| - name: Build Wheels (MacOS) | |
| uses: pypa/cibuildwheel@v2.23.2 | |
| if: matrix.os == 'macos-13' || matrix.os == 'macos-14' | |
| env: | |
| CIBW_BUILD: ${{ matrix.python_version }} | |
| CIBW_ENVIRONMENT: > | |
| FC=/opt/homebrew/bin/gfortran-14 | |
| # with: | |
| # package-dir: . | |
| # output-dir: wheelhouse | |
| # config-file: "{package}/pyproject.toml" | |
| - name: Build Wheels (Linux) | |
| uses: pypa/cibuildwheel@v2.23.2 | |
| if: matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm' | |
| env: | |
| CIBW_BUILD: ${{ matrix.python_version }} | |
| # 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 | |
| - name: Setup tmate session for PyPI upload failure | |
| uses: mxschmitt/action-tmate@v3 | |
| if: ${{ failure() }} | |
| with: | |
| limit-access-to-actor: true |