Script to provide pre-compiled binaries, built by GitHub actions, for linux/mac/windows #22
Workflow file for this run
This file contains 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: Tests | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
tests: | |
strategy: | |
matrix: | |
os: [ | |
{name: "Ubuntu", os: "ubuntu-latest", shell: "bash", compiler: "g++"}, | |
{name: "MacOS 12", os: "macos-12", shell: "bash", compiler: "g++-12"}, | |
{name: "MacOS 14 (M1)", os: "macos-14", shell: "bash", compiler: "g++-13"}, | |
{name: "Windows", os: "windows-latest", shell: "msys2", compiler: "g++"}, | |
] | |
projects: [ | |
{project: "template", name: "PhysiCell Template", binary: "project", max_time: 120, config: "config/PhysiCell_settings.xml", output_folder: "output"}, | |
{project: "heterogeneity-sample", name: "PhysiCell Heterogeneity", binary: "heterogeneity", max_time: 99, config: "config/PhysiCell_settings.xml", output_folder: "output"}, | |
{project: "template_BM", name: "PhysiBoSS Template", binary: "project", max_time: 120, config: "config/PhysiCell_settings.xml", output_folder: "output"}, | |
{project: "physiboss-cell-lines-sample", name: "PhysiBoSS Cell Lines", binary: "PhysiBoSS_Cell_Lines", max_time: 120, config: "config/PhysiCell_settings.xml", output_folder: "output"}, | |
{project: "physimess-sample", name: "PhysiMeSS Sample", binary: "project", config: "config/Fibre_Degradation/mymodel_matrix_degradation.xml", max_time: 120, output_folder: "output"}, | |
{project: "interaction-sample", name: "PhysiCell Interactions", binary: "interaction_demo", config: "config/PhysiCell_settings.xml", max_time: 99, output_folder: "output"}, | |
{project: "physiboss-tutorial", name: "PhysiBoSS Tutorial", binary: "project", config: "config/cell_cycle/PhysiCell_settings.xml", max_time: 600, output_folder: "output"}, | |
{project: "worm-sample", name: "PhysiCell worm", binary: "worm", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: "output"}, | |
{project: "virus-macrophage-sample", name: "Virus Macrophage", binary: "virus-sample", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: "output"}, | |
{project: "mechano-sample", name: "PhysiCell Mechano", binary: "project", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: "output"}, | |
{project: "rules-sample", name: "PhysiCell Rules", binary: "project", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: "output"}, | |
{project: "physiboss-tutorial-invasion", name: "PhysiBoSS Cancer Invasion", binary: "invasion_model", config: "config/PhysiCell_settings_2D.xml", max_time: 120, output_folder: "output"}, | |
] | |
name: Testing ${{ matrix.projects.name }} on ${{ matrix.os.name }} | |
runs-on: ${{ matrix.os.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.os.shell }} {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- if: matrix.os.name == 'Windows' | |
uses: msys2/setup-msys2@v2 | |
with: | |
update: true | |
install: mingw-w64-x86_64-binutils mingw-w64-x86_64-gcc mingw-w64-x86_64-headers-git mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-libwinpthread-git mingw-w64-x86_64-lapack mingw-w64-x86_64-openblas mingw-w64-x86_64-libxml2 mingw-w64-x86_64-bzip2 mingw-w64-x86_64-python mingw-w64-x86_64-python-zstandard mingw-w64-x86_64-python-cffi make bison flex mingw-w64-x86_64-ca-certificates mingw-w64-x86_64-diffutils | |
- name: Build ${{ matrix.projects.name }} project | |
run: | | |
make data-cleanup && make ${{ matrix.projects.project }} && make PHYSICELL_CPP=${{ matrix.os.compiler }} | |
- name: Run ${{ matrix.projects.name }} project | |
run: | | |
python beta/test_run_sample.py ${{ matrix.projects.binary }} ${{ matrix.projects.config }} ${{ matrix.projects.max_time }} | |
- name: Check ${{ matrix.projects.name }} project simulation results | |
run: | | |
python beta/test_diff_svg.py ${{ matrix.projects.output_folder }} tests/cases/output_${{ matrix.projects.project }} |