Skip to content

Commit b95e694

Browse files
committed
[ci] Build and cache BioDynaMo. (#5)
1 parent 7e8e525 commit b95e694

File tree

1 file changed

+53
-5
lines changed

1 file changed

+53
-5
lines changed

.github/workflows/ci.yml

Lines changed: 53 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,27 @@ concurrency:
1212

1313
jobs:
1414
build:
15-
name: ${{ matrix.compiler }}
16-
runs-on: ubuntu-latest
15+
name: ${{ matrix.name }}
16+
runs-on: ${{ matrix.os }}
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
compiler: [gcc, clang]
20+
include:
21+
- name: ubu22-gcc
22+
os: ubuntu-22.04
23+
compiler: gcc
2124

2225
steps:
2326
- uses: actions/checkout@v4
2427

2528
- name: Set up Python
2629
uses: actions/setup-python@v5
2730
with:
28-
python-version: 3.11
31+
python-version: 3.9
2932

3033
- name: Install dependencies
3134
run: |
32-
sudo apt-get update
35+
#sudo apt-get update
3336
if [ "${{ matrix.compiler }}" = "gcc" ]; then
3437
sudo apt-get install -y gcc g++ cmake make
3538
echo "CC=gcc" >> $GITHUB_ENV
@@ -39,6 +42,45 @@ jobs:
3942
echo "CC=clang" >> $GITHUB_ENV
4043
echo "CXX=clang++" >> $GITHUB_ENV
4144
fi
45+
sudo apt-get install curl freeglut3-dev g++ gcc git libblas-dev libbz2-dev liblapack-dev libnuma-dev libomp5 libomp-dev libopenmpi-dev libpthread-stubs0-dev make wget zlib1g-dev python3-dev libbz2-dev libffi-dev liblzma-dev libreadline-dev libsqlite3-dev libssl-dev python3-openssl tk-dev xz-utils zlib1g-dev
46+
47+
- name: Cache Third Party Packages
48+
uses: actions/cache@v4
49+
with:
50+
path: build/third_party
51+
key: ${{ matrix.os }}-third-party-${{ hashFiles('cmake/external/SHA256Digests.cmake') }}
52+
53+
- name: Restore BDM Cache
54+
uses: actions/cache/restore@v4
55+
id: cache
56+
with:
57+
path: |
58+
biodynamo
59+
key: ${{ matrix.os }}-bdm
60+
61+
- name: Build BDM if Cache is not found
62+
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
63+
run: |
64+
git clone --depth=1 https://github.com/vgvassilev/biodynamo.git
65+
cd biodynamo
66+
cmake \
67+
-DNOPYENV=YES \
68+
-Dnotebooks=OFF \
69+
-Dparaview=OFF \
70+
-Dbenchmark=ON \
71+
-Dlibgit2=ON \
72+
-Dsbml=OFF \
73+
-DCMAKE_BUILD_TYPE=Release \
74+
-B build
75+
cmake --build build --config Release
76+
cd ..
77+
- name: Save Cache BDM
78+
uses: actions/cache/save@v4
79+
if: ${{ steps.cache.outputs.cache-hit != 'true' }}
80+
with:
81+
path: |
82+
biodynamo
83+
key: ${{ steps.cache.outputs.cache-primary-key }}
4284

4385
- name: Configure project
4486
run: |
@@ -51,3 +93,9 @@ jobs:
5193
- name: Run tests
5294
run: |
5395
ctest --test-dir build --output-on-failure
96+
97+
- name: Setup tmate session
98+
if: ${{ !cancelled() && runner.debug }}
99+
uses: mxschmitt/action-tmate@v3
100+
# When debugging increase to a suitable value!
101+
timeout-minutes: 30

0 commit comments

Comments
 (0)