Sped up Smoldyn suface and panel lookup with new c-safe Hashtable
#25
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: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| submodules: true | ||
| - name: Install Ubuntu Dependencies | ||
| if: matrix.os == 'ubuntu-latest' || matrix.os == 'ubuntu-24.04-arm' | ||
| run: | | ||
| sudo apt update | ||
| sudo apt install -y wget gfortran cmake ninja-build libboost-all-dev libzip-dev libhdf5-dev libbz2-dev libssl-dev liblzma-dev | ||
| # for some reason, there aren't headers included in libzip-dev???? so we're building from source! | ||
| mkdir ../libzip-source | ||
| wget https://libzip.org/download/libzip-1.11.3.tar.gz | ||
| tar -xzvf libzip-1.11.3.tar.gz -C ../libzip-source | ||
| cmake -S ../libzip-source/libzip-1.11.3 -B ../libzip-source/libzip-1.11.3/build -G Ninja | ||
| cmake --build ../libzip-source/libzip-1.11.3/build | ||
| sudo cmake --install ../libzip-source/libzip-1.11.3/build | ||
| echo "Confirming header presence..." | ||
| - name: Install Intel MacOS Dependencies | ||
| if: matrix.os == '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.os == '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 | ||
| echo "C:\tools\msys64\clang64\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH | ||
| echo "C:\tools\msys64\clang64\lib" | Out-File -Append -Encoding ascii $env:GITHUB_PATH | ||
| echo "C:\tools\msys64\clang64\include" | 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<x86_64>) | ||
| uses: pypa/cibuildwheel@v2.23.2 | ||
| if: matrix.os == 'macos-13' | ||
| env: | ||
| CIBW_BUILD: ${{ matrix.python_version }} | ||
| CIBW_ENVIRONMENT: > | ||
| FC=/usr/local/bin/gfortran | ||
| # with: | ||
| # package-dir: . | ||
| # output-dir: wheelhouse | ||
| # config-file: "{package}/pyproject.toml" | ||
| - name: Build Wheels (MacOS<ARM>) | ||
| uses: pypa/cibuildwheel@v2.23.2 | ||
| if: matrix.os == 'macos-14' | ||
| env: | ||
| MACOSX_DEPLOYMENT_TARGET: 14.0 | ||
| 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<ARM>) | ||
| uses: pypa/cibuildwheel@v2.23.2 | ||
| if: matrix.os == 'ubuntu-24.04-arm' | ||
| env: | ||
| CIBW_BUILD: ${{ matrix.python_version }} | ||
| CIBW_BEFORE_BUILD: "pip install h5py && export LIBZIP_INCLUDE_DIR=/usr/local/include && export LIBZIP_LIBRARY=/usr/local/lib/libzip.so" | ||
| # with: | ||
| # package-dir: . | ||
| # output-dir: wheelhouse | ||
| # config-file: "{package}/pyproject.toml" | ||
| - name: Build Wheels (Linux<x86_64>) | ||
| uses: pypa/cibuildwheel@v2.23.2 | ||
| if: matrix.os == 'ubuntu-latest' | ||
| env: | ||
| CIBW_BUILD: ${{ matrix.python_version }} | ||
| CIBW_BEFORE_BUILD: "pip install h5py && export LIBZIP_INCLUDE_DIR=/usr/local/include && export LIBZIP_LIBRARY=/usr/local/lib/libzip.so" | ||
| # with: | ||
| # package-dir: . | ||
| # output-dir: wheelhouse | ||
| # config-file: "{package}/pyproject.toml" | ||
| - uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: pyvcell-fv-${{ matrix.os }}-${{ matrix.python_version:0:-2 }}-cibw-wheels | ||
|
Check failure on line 155 in .github/workflows/build_wheels.yml
|
||
| path: ./wheelhouse/*.whl | ||
| - name: Setup tmate session on failure | ||
| uses: mxschmitt/action-tmate@v3 | ||
| if: ${{ failure() }} | ||
| with: | ||
| limit-access-to-actor: true | ||