Skip to content

Script to provide pre-compiled binaries, built by GitHub actions, for linux/mac/windows #22

Script to provide pre-compiled binaries, built by GitHub actions, for linux/mac/windows

Script to provide pre-compiled binaries, built by GitHub actions, for linux/mac/windows #22

Workflow file for this run

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 }}