Skip to content

Commit 5055595

Browse files
authored
Merge pull request #297 from MathCancer/development
Preparing 1.14.0 release
2 parents 6469c12 + b84e10f commit 5055595

392 files changed

Lines changed: 281768 additions & 3430 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
name: Build binaries
2+
3+
on:
4+
push:
5+
pull_request:
6+
release:
7+
types: [created]
8+
9+
jobs:
10+
11+
ubuntu:
12+
strategy:
13+
matrix:
14+
projects: [
15+
{short_name: "physiboss-tutorial", project: "physiboss-tutorial", name: "PhysiBoSS tutorial", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
16+
{short_name: "physiboss-tutorial-invasion", project: "physiboss-tutorial-invasion", name: "PhysiBoSS Cancer Invasion", binary: "invasion_model", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
17+
{short_name: "physiboss-cell-lines", project: "physiboss-cell-lines-sample", name: "PhysiBoSS Cell Lines", binary: "PhysiBoSS_Cell_Lines", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
18+
{short_name: "template_BM", project: "template_BM", name: "PhysiBoSS Template", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
19+
{short_name: "template", project: "template", name: "PhysiCell Template", binary: "project", extra_run: ""},
20+
{short_name: "rules", project: "rules-sample", name: "PhysiCell Rules", binary: "project", extra_run: ""},
21+
{short_name: "physimess", project: "physimess-sample", name: "PhysiMeSS", binary: "project", extra_run: ""},
22+
{short_name: "interaction", project: "interaction-sample", name: "PhysiCell Interaction", binary: "interaction_demo", extra_run: ""},
23+
]
24+
25+
runs-on: ubuntu-latest
26+
27+
steps:
28+
- uses: actions/checkout@v4
29+
30+
- name: Build ${{ matrix.projects.name }}
31+
run: |
32+
make ${{ matrix.projects.project }}
33+
make clean
34+
${{ matrix.projects.extra_run }}
35+
make static STATIC_OPENMP=/usr/lib/gcc/x86_64-linux-gnu/11/libgomp.a
36+
37+
- name: Checking binary for ${{ matrix.projects.name }}
38+
run: |
39+
ldd ${{ matrix.projects.binary }}
40+
41+
- name: Build ${{ matrix.projects.name }} project archive
42+
run: |
43+
rm -fr config/PhysiCell_settings-backup.xml
44+
tar -zcvf ${{ matrix.projects.short_name }}-linux.tar.gz ${{ matrix.projects.binary }} Makefile main.cpp config/ custom_modules/
45+
46+
- uses: actions/upload-release-asset@v1
47+
if: github.event_name == 'release'
48+
env:
49+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50+
with:
51+
upload_url: ${{ github.event.release.upload_url }}
52+
asset_name: ${{ matrix.projects.short_name }}-linux.tar.gz
53+
asset_path: ${{ github.workspace }}/${{ matrix.projects.short_name }}-linux.tar.gz
54+
asset_content_type: application/gzip
55+
56+
57+
windows:
58+
strategy:
59+
matrix:
60+
projects: [
61+
{short_name: "physiboss-tutorial", project: "physiboss-tutorial", name: "PhysiBoSS tutorial", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
62+
{short_name: "physiboss-tutorial-invasion", project: "physiboss-tutorial-invasion", name: "PhysiBoSS Cancer Invasion", binary: "invasion_model", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
63+
{short_name: "physiboss-cell-lines", project: "physiboss-cell-lines-sample", name: "PhysiBoSS Cell Lines", binary: "PhysiBoSS_Cell_Lines", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
64+
{short_name: "template_BM", project: "template_BM", name: "PhysiBoSS Template", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
65+
{short_name: "template", project: "template", name: "PhysiCell Template", binary: "project", extra_run: ""},
66+
{short_name: "rules", project: "rules-sample", name: "PhysiCell Rules", binary: "project", extra_run: ""},
67+
{short_name: "physimess", project: "physimess-sample", name: "PhysiMeSS", binary: "project", extra_run: ""},
68+
{short_name: "interaction", project: "interaction-sample", name: "PhysiCell Interaction", binary: "interaction_demo", extra_run: ""},
69+
]
70+
71+
runs-on: windows-latest
72+
73+
defaults:
74+
run:
75+
shell: msys2 {0}
76+
77+
steps:
78+
- uses: actions/checkout@v4
79+
80+
- uses: msys2/setup-msys2@v2
81+
with:
82+
update: true
83+
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
84+
85+
- name: Build ${{ matrix.projects.name }} project
86+
run: |
87+
make ${{ matrix.projects.project }}
88+
make clean
89+
python beta/setup_windows_dep.py
90+
${{ matrix.projects.extra_run }}
91+
make static
92+
93+
- name: Checking binary for ${{ matrix.projects.name }}
94+
run: |
95+
ldd .\\${{ matrix.projects.binary }}.exe
96+
97+
- name: Build ${{ matrix.projects.name }} project archive
98+
run: |
99+
rm -fr config/PhysiCell_settings-backup.xml
100+
tar -zcvf ${{ matrix.projects.short_name }}-win.tar.gz ${{ matrix.projects.binary }}.exe *.dll Makefile main.cpp config/ custom_modules/
101+
102+
- uses: actions/upload-release-asset@v1
103+
if: github.event_name == 'release'
104+
env:
105+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
106+
with:
107+
upload_url: ${{ github.event.release.upload_url }}
108+
asset_name: ${{ matrix.projects.short_name }}-win.tar.gz
109+
asset_path: ${{ github.workspace }}\${{ matrix.projects.short_name }}-win.tar.gz
110+
asset_content_type: application/gzip
111+
112+
113+
macos_step0a:
114+
strategy:
115+
matrix:
116+
projects: [
117+
{short_name: "physiboss-tutorial", project: "physiboss-tutorial", name: "PhysiBoSS tutorial", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
118+
{short_name: "physiboss-tutorial-invasion", project: "physiboss-tutorial-invasion", name: "PhysiBoSS Cancer Invasion", binary: "invasion_model", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
119+
{short_name: "physiboss-cell-lines", project: "physiboss-cell-lines-sample", name: "PhysiBoSS Cell Lines", binary: "PhysiBoSS_Cell_Lines", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
120+
{short_name: "template_BM", project: "template_BM", name: "PhysiBoSS Template", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
121+
{short_name: "template", project: "template", name: "PhysiCell Template", binary: "project", extra_run: ""},
122+
{short_name: "rules", project: "rules-sample", name: "PhysiCell Rules", binary: "project", extra_run: ""},
123+
{short_name: "physimess", project: "physimess-sample", name: "PhysiMeSS", binary: "project", extra_run: ""},
124+
{short_name: "interaction", project: "interaction-sample", name: "PhysiCell Interaction", binary: "interaction_demo", extra_run: ""},
125+
]
126+
127+
runs-on: macos-12
128+
129+
steps:
130+
- uses: actions/checkout@v4
131+
132+
- name: Install dependencies
133+
run : brew install gcc@13
134+
135+
- name: Build ${{ matrix.projects.name }} project
136+
run: |
137+
export MACOSX_DEPLOYMENT_TARGET=12
138+
make ${{ matrix.projects.project }}
139+
make clean
140+
${{ matrix.projects.extra_run }}
141+
make PHYSICELL_CPP=g++-13 static
142+
cp ${{ matrix.projects.binary }} ${{ matrix.projects.binary }}_macos12
143+
144+
- name: Caching produced project binary
145+
uses: actions/cache@v4
146+
with:
147+
path: |
148+
${{ github.workspace }}/${{ matrix.projects.binary }}_macos12
149+
key: ${{ runner.os }}-macos12-${{ github.run_id }}
150+
151+
- name: Look at the generated binary
152+
run: |
153+
otool -L ${{ matrix.projects.binary }}
154+
otool -l ${{ matrix.projects.binary }}
155+
lipo -archs ${{ matrix.projects.binary }}
156+
157+
macos_step0b:
158+
strategy:
159+
matrix:
160+
projects: [
161+
{short_name: "physiboss-tutorial", project: "physiboss-tutorial", name: "PhysiBoSS tutorial", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
162+
{short_name: "physiboss-tutorial-invasion", project: "physiboss-tutorial-invasion", name: "PhysiBoSS Cancer Invasion", binary: "invasion_model", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
163+
{short_name: "physiboss-cell-lines", project: "physiboss-cell-lines-sample", name: "PhysiBoSS Cell Lines", binary: "PhysiBoSS_Cell_Lines", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
164+
{short_name: "template_BM", project: "template_BM", name: "PhysiBoSS Template", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
165+
{short_name: "template", project: "template", name: "PhysiCell Template", binary: "project", extra_run: ""},
166+
{short_name: "rules", project: "rules-sample", name: "PhysiCell Rules", binary: "project", extra_run: ""},
167+
{short_name: "physimess", project: "physimess-sample", name: "PhysiMeSS", binary: "project", extra_run: ""},
168+
{short_name: "interaction", project: "interaction-sample", name: "PhysiCell Interaction", binary: "interaction_demo", extra_run: ""},
169+
]
170+
171+
runs-on: macos-14
172+
173+
steps:
174+
- uses: actions/checkout@v4
175+
176+
- name: Install dependencies
177+
run : brew install gcc@13
178+
179+
- name: Build ${{ matrix.projects.name }} project
180+
run: |
181+
export MACOSX_DEPLOYMENT_TARGET=12
182+
make ${{ matrix.projects.project }}
183+
make clean
184+
${{ matrix.projects.extra_run }}
185+
make PHYSICELL_CPP=g++-13 static
186+
cp ${{ matrix.projects.binary }} ${{ matrix.projects.binary }}_macosm1
187+
188+
- name: Caching produced project binary
189+
uses: actions/cache@v4
190+
with:
191+
path: |
192+
${{ github.workspace }}/${{ matrix.projects.binary }}_macosm1
193+
key: ${{ runner.os }}-macosm1-${{ github.run_id }}
194+
195+
- name: Look at the generated binary
196+
run: |
197+
otool -L ${{ matrix.projects.binary }}
198+
otool -l ${{ matrix.projects.binary }}
199+
lipo -archs ${{ matrix.projects.binary }}
200+
201+
macos_step1:
202+
strategy:
203+
matrix:
204+
projects: [
205+
{short_name: "physiboss-tutorial", project: "physiboss-tutorial", name: "PhysiBoSS tutorial", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
206+
{short_name: "physiboss-tutorial-invasion", project: "physiboss-tutorial-invasion", name: "PhysiBoSS Cancer Invasion", binary: "invasion_model", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
207+
{short_name: "physiboss-cell-lines", project: "physiboss-cell-lines-sample", name: "PhysiBoSS Cell Lines", binary: "PhysiBoSS_Cell_Lines", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
208+
{short_name: "template_BM", project: "template_BM", name: "PhysiBoSS Template", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
209+
{short_name: "template", project: "template", name: "PhysiCell Template", binary: "project", extra_run: ""},
210+
{short_name: "rules", project: "rules-sample", name: "PhysiCell Rules", binary: "project", extra_run: ""},
211+
{short_name: "physimess", project: "physimess-sample", name: "PhysiMeSS", binary: "project", extra_run: ""},
212+
{short_name: "interaction", project: "interaction-sample", name: "PhysiCell Interaction", binary: "interaction_demo", extra_run: ""},
213+
]
214+
215+
runs-on: macos-12
216+
needs: [macos_step0a, macos_step0b]
217+
218+
steps:
219+
- uses: actions/checkout@v4
220+
221+
- name: Caching produced project binary
222+
uses: actions/cache@v4
223+
with:
224+
path: |
225+
${{ github.workspace }}/${{ matrix.projects.binary }}_macosm1
226+
key: ${{ runner.os }}-macosm1-${{ github.run_id }}
227+
228+
- name: Caching produced project binary
229+
uses: actions/cache@v4
230+
with:
231+
path: |
232+
${{ github.workspace }}/${{ matrix.projects.binary }}_macos12
233+
key: ${{ runner.os }}-macos12-${{ github.run_id }}
234+
235+
- name: Creating universal binary
236+
run: |
237+
lipo -create -output ${{ matrix.projects.binary }} ${{ matrix.projects.binary }}_macos12 ${{ matrix.projects.binary }}_macosm1
238+
239+
- name: Checking universal binary
240+
run: |
241+
lipo -archs ${{ matrix.projects.binary }}
242+
otool -l ${{ matrix.projects.binary }}
243+
otool -L ${{ matrix.projects.binary }}
244+
245+
- name: Build project archive
246+
run: |
247+
make ${{ matrix.projects.project }}
248+
rm -fr config/PhysiCell_settings-backup.xml
249+
tar -zcvf ${{ matrix.projects.short_name }}-macos.tar.gz ${{ matrix.projects.binary }} Makefile main.cpp config/ custom_modules/
250+
251+
- uses: actions/upload-release-asset@v1
252+
if: github.event_name == 'release'
253+
env:
254+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
255+
with:
256+
upload_url: ${{ github.event.release.upload_url }}
257+
asset_name: ${{ matrix.projects.short_name }}-macos.tar.gz
258+
asset_path: ${{ github.workspace }}/${{ matrix.projects.short_name }}-macos.tar.gz
259+
asset_content_type: application/gzip

.github/workflows/test-macosx.yml

Lines changed: 0 additions & 69 deletions
This file was deleted.

.github/workflows/test-ubuntu.yml

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)