Skip to content

Merge PyChaste into Chaste develop #30

Merge PyChaste into Chaste develop

Merge PyChaste into Chaste develop #30

name: Ubuntu compilers
on:
workflow_dispatch:
pull_request:
branches:
- '**'
push:
branches:
- develop
jobs:
compiler-all-libs:
if: ${{ !contains(github.event.pull_request.labels.*.name, 'ci:off') }}
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- cc: "clang-13"
cxx: "clang++-13"
build-type: "Debug"
- cc: "clang-14"
cxx: "clang++-14"
build-type: "Release"
- cc: "gcc-10"
cxx: "g++-10"
build-type: "Release"
- cc: "gcc-12"
cxx: "g++-12"
build-type: "Debug"
- cc: "icx"
cxx: "icpx"
build-type: "Debug"
- cc: "icx"
cxx: "icpx"
build-type: "Release"
env:
CHASTE_TEST_OUTPUT: ${{ github.workspace }}/chaste-test-dir
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
steps:
- name: checkout repository
uses: actions/checkout@v4
- name: install dependencies
run: |
echo 'deb [signed-by=/usr/share/keyrings/chaste.asc] https://chaste.github.io/ubuntu jammy/' | sudo tee -a /etc/apt/sources.list.d/chaste.list
sudo wget -O /usr/share/keyrings/chaste.asc https://chaste.github.io/chaste.asc
sudo apt update
sudo apt install chaste-dependencies
- name: install and set up Intel LLVM compiler
run: |
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
sudo apt update
sudo apt install intel-oneapi-compiler-dpcpp-cpp
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
if: ${{ matrix.cc == 'icx' }}
- name: compiler version
run: |
${CXX} --version
- name: make build and test directories
run: |
mkdir -p chaste-build-dir
mkdir -p ${CHASTE_TEST_OUTPUT}
- name: cmake configure
run: cmake -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} ..
working-directory: chaste-build-dir
- name: build core libraries
run: cmake --build . --parallel 4 --target chaste_core
working-directory: chaste-build-dir
- name: build cell_based
run: cmake --build . --parallel 4 --target chaste_cell_based
working-directory: chaste-build-dir
- name: build crypt
run: cmake --build . --parallel 4 --target chaste_crypt
working-directory: chaste-build-dir
- name: build heart
run: cmake --build . --parallel 4 --target chaste_heart
working-directory: chaste-build-dir
- name: build lung
run: cmake --build . --parallel 4 --target chaste_lung
working-directory: chaste-build-dir